상수 포인터(constant pointer)와 상수를 가리키는 포인터(pointer to constant)

C문법에서 const 키워드가 포인터에대해 사용될때 키워드의 위치에따라 의미가 매우 달라진다. 상수포인터와, 상수를 가리키는 포인터 변수 두가지가있으니 주의해서 사용해야한다.

상수 포인터(constant pointer)

  • 문법:

     int * const myValue;
  • 포인터 변수가 갖고있는 주소 값을 변경 불가능

  • 포인터 변수가 가리키는 주소에 존재하는 값을 변경하는 것은 가능
  • Objective-C에서 키값을 정의하는데 많이 사용되는 패턴이다.

    예): NSString *const kCustomKey = @“myKey”;

상수를 가리키는 포인터(pointer to constant)

  • 문법:

    const int *  myValue;
  • 포인터 변수가 갖고있는 값은 마음대로 변경 가능

  • 포인터 변수는 가리키고 있는 주소에 존재하는 값을 변경하는것이 불가능하다.