Const 키워드의 의미!
a. const int n = 10; // 말그대로 n의 값을 변경할 수 없다 즉 n은 언제나 10
b. const int* n; // 이것은 포인터변수의 값이 아닌 가리키는 기억공간의 값을 고정시키는 것
e.g. int a=10, int b=20;
const int *ap = &a;
printf("변수 a의 값 : %d\n", *ap);
ap=&b;
printf("변수 a의 값 : %d\n", *ap); // 이럼 결과로 머가 나올까??
===============================
변수 a의 값 : 10
변수 b의 값 : 20
또 다른 예제
int a=10;
int *ap=&a;
*ap=20; // 바로 여기가 에러 포인트~~~ 값을 바꿀수 없다. (이코드는 컴파일에러)
printf("변수 a의 값 : %d\n", *ap);
===============================
여기서 잠깐 그러나 변수 a는 포인터를 통해서만 값을 못바꾸지 변수 a에 접근해서는
값 변경이 가능하다는것~
c. int* const n;
위의 것과 비스무리하게 생긴 이거는 도대체 무엇을 변경할 수 없다는 소린가??
예상과 같이 n의 값을 변경할수 없단 소리 즉 포인터변수의 값을 변경할 수 없다는 뜻
e.g int a=10, b=10;
int * conts ap = &a; // 초기화할때 변수의 주소를 넘겨주지 않아도 에러가 남
ap=&b; // 바로 이게 에러포인트 포인트, 포인터 변수의 값을 바꿀 수 없다.
d. const int* const n;
이것이야 머 b,c를 보면 쉽게 이해되는 부분.
a. const int n = 10; // 말그대로 n의 값을 변경할 수 없다 즉 n은 언제나 10
b. const int* n; // 이것은 포인터변수의 값이 아닌 가리키는 기억공간의 값을 고정시키는 것
e.g. int a=10, int b=20;
const int *ap = &a;
printf("변수 a의 값 : %d\n", *ap);
ap=&b;
printf("변수 a의 값 : %d\n", *ap); // 이럼 결과로 머가 나올까??
===============================
변수 a의 값 : 10
변수 b의 값 : 20
또 다른 예제
int a=10;
int *ap=&a;
*ap=20; // 바로 여기가 에러 포인트~~~ 값을 바꿀수 없다. (이코드는 컴파일에러)
printf("변수 a의 값 : %d\n", *ap);
===============================
여기서 잠깐 그러나 변수 a는 포인터를 통해서만 값을 못바꾸지 변수 a에 접근해서는
값 변경이 가능하다는것~
c. int* const n;
위의 것과 비스무리하게 생긴 이거는 도대체 무엇을 변경할 수 없다는 소린가??
예상과 같이 n의 값을 변경할수 없단 소리 즉 포인터변수의 값을 변경할 수 없다는 뜻
e.g int a=10, b=10;
int * conts ap = &a; // 초기화할때 변수의 주소를 넘겨주지 않아도 에러가 남
ap=&b; // 바로 이게 에러포인트 포인트, 포인터 변수의 값을 바꿀 수 없다.
d. const int* const n;
이것이야 머 b,c를 보면 쉽게 이해되는 부분.