-
반응형
배열 표기법과 포인터 표기법의 관계
//배열 char data[5]; data[1]= 5; *(data + 1 ) = 5; // 위 배열할당 표현과 같은 표현 // 포인터 char data; char *p = &data; *p = 3; p[0] = 3; // 위 포인터 할당 표현과 같은 표현
배열 표기법의 한계
int data[2] = {0x12345678, 0x12345678};
data[0] = 0x22; // data 배열 항목의 크기가 4바이트이기 때문에 한꺼번에 값이 변경되어 값 0x00000022가 대입됨
// 위 예제에서 배열 표기법 대신 포인터 표기법을 사용하면? int data[2] = {0x12345678, 0x12345678}; // 일시적으로 int * 형을 char * 형으로 변환 *(char*)(data+1) = 0x22;
자기가 원하는 번지의 값으로 형변환 캐스팅을 걸어서 바꿀수 있음
이는 배열과 포인터가 문법적 혼용이 가능. 같다는 의미는 아님
반응형'C' 카테고리의 다른 글
배열을 사용하는 포인터 (0) 2022.05.24 표준 입력 함수 scanf (0) 2022.05.21 문자열을 정수로 변환 (0) 2022.05.20