#C언어 배열 : 이차원 " 배열 포인터 "
#include int main() { int ary[][4] = { 5,7,6,2,7,8,1,3}; /* 5 7 6 2 7 8 1 3 */ int (*ptr)[4] = ary; printf("%2d, %2d\n", **ary, **ptr++);// 1행 1열 value 출력 printf("%2d, %2d\n", **(ary+1), **(ptr++)); // 1행 2열 value 출력 ptr = ary; // 다시 초기화 해주는 것. 이후 ary와 ptr 값이 달라지므로 ( 위에서 ptr 후위 증감) printf("%2d, %2d\n", *(ary[1]+1),*(ptr[1]+1)); // 2행 2열을 출력 printf("%2d, %2d\n", *(*(ary + 1) +1),*(*(ptr + 1) +1))..
더보기
# C언어 포인터 : const 포인터 상수 기초 1( 포인터에 붙이기 VS 상수에 붙이기 )
#include int main() { // 기본원리 : const 바로 뒤에 붙은 애는 변경할 수 없다. //1, " const type * 변수" 형태 ( type 앞에 const 가 붙을 때 ) int i =10, j =20; const int *p = &i; printf("%d\n",*p); // 10 p = &j; printf("%d\n",*p); // 20 /* 설명 *p를 상수로 고정한다는 것이다. 즉, *p는 무조건 고정된 값이고, 설령 *p 혹은, p를 바꾸고 싶다고 하더라도 *p는 변경할 수 없다 즉, 만약 *p 혹은 p 를 변화시키고자 한다면 p 를 변화시켜야 한다 예를 들어, *p = j ; 이렇게 하면 error 가 뜬다 위의 코드를 보면, *p 가 처음에는 i 를 출력하고 있었다..
더보기