본문 바로가기

2014 C/3월

2014.03.28


const


int A = 100;

const int B = 200; //const는 B를 꾸며준다. B변경 불가능

int * C = &A;

const int * D = &A; //const는 *을 꾸며준다 포인터 E가 가르키는 A변경 불가능

int * const E = &A; //const는 E를 꾸며준다. E가 가르키는 포인터 변경 불가능

const int *const F = &A; //const는 *과 F를 꾸며준다. 모두 변경 불가능


A=10;

B=20; //Error

*C=30;

*D=40; //Error

D=&B;

*E=50

E=&B; //Error

*F=60; //Error

F=&B; //Error


**const는 바로 뒤에있는 것의 변경을 불가능하게 하며 두번 중첩으로 쓸 수 있다.




 

다차원배열




 #include <stdio.h>


int main()
{
  int arr1[3][4];
  int arr2[7][9];

  printf("세로 3, 가로 4 : %d \n", sizeof(arr1));
  printf("세로 3, 가로 4 : %d \n", sizeof(arr2));

  return 0;
}


 #include <stdio.h>


int main()
{
  int iaData[3][4];
  
  printf("\n%d \n", iaData);
  printf("%d \n", iaData+1);
  printf("%d \n", iaData+2);
  //다음줄로 이동 (행)


  printf("\n\n\n%d \n", iaData[0]);
  printf("%d \n", iaData[1]);
  printf("%d \n", iaData[2]);


  printf("\n\n\n%d \n"&iaData[0]);
  printf("%d \n"&iaData[1]);
  printf("%d \n"&iaData[2]);
  //&iaData[1] 과 iaData + 1 은 같다.


  printf("\n\n%d \n", *(iaData+1)+1);
  //칸이동
  //*(iaData+1) 과 iaData[1] 은 같다.



  //같은값 !!!!
  printf("\n\n%d \n", *(iaData+1)+2);
  printf("%d \n", iaData[1]+2);
  printf("%d"&iaData[1][2]);
  //*****


  //값을 취하는 방법 (같은값!!!!)
  printf("\n\n%d \n", *(iaData[1]+1));
  printf("%d \n", *(*(iaData+1)+1));
  printf("%d \n", iaData[1][1]);
  //[] 대괄호 하나가 * 별 한개 공식 
  //*****


  /*
  int iaTwo[5];
  printf("%08X \n", iaTwo);
  printf("%08X \n", iaTwo+1);
  printf("%08X \n", &iaTwo+1); //배열앞에 &를 붙이면 배열전체를 뜻한다. 
                 //그래서 20byte가 이동함
                 //16진수 (14)==(20) 2진수
  */

  

  return 0;
}


'2014 C > 3월' 카테고리의 다른 글

2014.03.31  (0) 2014.03.31
2014.03.27  (0) 2014.03.27
2013.03.26  (0) 2014.03.26
2014.03.26  (0) 2014.03.26
2014.03.25  (0) 2014.03.25