Skip to content

Latest commit

 

History

History
24 lines (21 loc) · 1.08 KB

Array.md

File metadata and controls

24 lines (21 loc) · 1.08 KB

Array

  • 배열의 identifier는 배열의 첫요소의 주소이다.
  • 즉 배열의 identifier는 상수값이기 때문에, 피연산자로서 역할을 하지 못한다는 뜻이다.
void main(void){
	char a[] = "SCSA";
	char *p = a;

	printf("%x\n", &a);     // 가능
	printf("%x\n", &a++);   // 불가   --> l-value 에러이다. 주소값이기 때문에, 연산이 불가하다.
	printf("%x\n", (&a)++); // 불가   --> l-value 에러이다. 주소값이기 때문에, 연산이 불가하다.
	printf("%c\n", *a);     // 가능
	printf("%c\n", *a++);   // 불가  --> l-value 에러이다. 주소값이기 때문에, 연산이 불가하다.
	printf("%c\n", (*a)++); // 가능
	printf("%x\n", p);		// 가능
	printf("%x\n", ++p);	// 가능
	printf("%s\n", *++p);	// 컴파일은 되지만, 오류이다. 이유는 %s는 주소값을 받는데, *++p는 상수값을 반환하기 때문이다.
  printf("%c\n", *++p);	// 가능. C 출력
	printf("%c", ++*p);		// 가능
	printf("%s", a++);      // 불가  --> l-value 에러이다. 주소값이기 때문에, 연산이 불가하다.
}