C언어 - const와 배열과 포인터
2020. 11. 12. 11:33ㆍ개인공부/C언어
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
//type qualifiers : const, volatile,...
const double PI = 3.14159;
//PI = 2.14159;
const int arr[5] = { 1,2,3,4,5 };
// const를 붙이면 배열의 각각의 값을 바꿀수없다.
// arr[1] = 123; // const붙이면 Not Working
const double arr2[4] = { 1.0,2.0,3.0,4.0 };
//arr2[0] = 100.0;
const double* const pd = arr2;
// *pd = 3.0; // pd[0] = 3.0; arr2[0] = 3.0;
// pd[2] = 1024.0; // arr2[2] = 1024.0;
// pd가 포인터인데 배열처럼 사용되고 있다.
printf("pd[2]: %f\n", pd[2]);
printf("arr[2]: %f\n", arr[2]);
//pd++; // allowed
//const여도 포인터 자체의 값은 바꿀수 있게 되어있다.
//const double* const pd = arr2; 하지만 이렇게 pd에 직접 const를 붙이면
// 값을 바꿀수 없음
printf("pd[2]: %f\n", pd[2]);
printf("arr[2]: %f\n", arr[2]);
return 0;
}
출처 : 홍정모의 따라배우는 C언어
'개인공부 > C언어' 카테고리의 다른 글
C언어 - 포인터에 대한 포인터(2중 포인터)의 작동 원리 (0) | 2020.11.12 |
---|---|
C언어 - 배열 매개변수와 const (0) | 2020.11.12 |
C언어 - 포인터 연산 총정리 (0) | 2020.11.12 |
C언어 - 배열을 함수에게 전달해주는 방법 (0) | 2020.11.12 |
C언어 - 2차원 배열과 메모리 (0) | 2020.11.11 |