본문 바로가기

프로그래밍/기타

포인터

# 포인터 주소값 출력시
%u

# 포인터 연산 관련

void main()
{
 int m[4] = {9,8,7,6};                                                              // int의 사이즈는 4
 double *pm;                                                                        // double 사이즈는 8
 pm = (double*)&m;
 printf("%d %d %d %d\n",m[0],m[1],m[2],m[3]);
 printf("%u %u %u %u\n",&m[0],&m[1],&m[2],&m[3]);
 printf("%d %d %d %d\n",*pm,*(pm+1),*(pm+2),*(pm+3));
 printf("%u %u %u %u\n", pm,pm+1,pm+2,pm+3);
}

결과값
9 8 7 6
1245012 1245016 1245020 1245024           // 4씩 증가함
9 8 7 6
1245012 1245020 1245028 1245036           // 8씩 증가함


# "문자열" 의 의미는 그 문자열의 첫 번째 주소값을 뜻 함. 
    마치, 문자배열에서 배열 이름이 배열의 첫 번쨰 주소값 인것과 같은 개념


# 포인터 배열
  char *M[] = {"The", "Plming"};
  printf("%s %s",M[0],M[1]);
  printf("%s %s\n",*M,*(M+1));

  출력 : The Plming
           The Plming