오답노트
포인터와 배열의 관계 본문
int main()
{
int num = 10;
int* ptr;
ptr = #
printf("%p\n", ptr); // 결과 주소값
printf("%p\n", &num); // 결과 주소값
printf("%d\n", num); // 결과 10
printf("%d", *ptr); // 결과 10
int arr[5] = { 1,2,3,4,5 };
ptr = arr; //배열과 같은 개념
for (int i = 0; i < (sizeof(arr) / sizeof(int)); i++)
{
printf("%d\n", arr[i]);
printf("%d\n", *(arr + i));
printf("%d\n", ptr[i]);
printf("%d\n", *(ptr + i));
}
return 0;
}
표현식은 같게 사용할 수 있으나 메모리에 접근할 때는 다르다.
int main()
{
char arr[] = "Golf";
arr[3] = 'd'; // 정상
printf("%s", arr);
char* ptr = "Golf";
ptr[3] = 'd'; //오류
printf("%s", ptr);
return 0;
}
포인터를 문자열 상수로 초기화 시키는것은 가능하다.
그러나 포인터를 이용하여 문자열 상수의 값을 변경은 불가능하다.
상수는 고정된 값이기 때문에 변수처럼 값을 변경할 수는 없다.
'C,C++' 카테고리의 다른 글
malloc 과 sizeof (0) | 2021.03.27 |
---|---|
scanf, scanf_s 용법 차이 (0) | 2021.03.27 |
[C,C++] 파일 읽기 (0) | 2021.03.18 |
이중배열 동적할당 및 해제 (0) | 2021.03.11 |
int -> char (상하위 비트 분리) (0) | 2021.02.09 |