C언어 포인터와 상수

1 개요[ | ]

C언어 포인터와 상수 관계

2 대상체 상수[ | ]

  • 대상체가 상수이기 때문에 값을 변경할 수 없다.
  • 상수인 대상체의 값 변경을 시도하면 컴파일 오류가 발생한다.

2.1 포인터 변수 1[ | ]

const int *p =  &i;
#include <stdio.h>
void main() {
    int i = 1;
    const int *p = &i;
    *p = 2; // error: assignment of read-only location ‘*p’
}

2.2 포인터 변수 2[ | ]

int const *p = &i;
#include <stdio.h>
void main() {
    int i = 1;
    int const *p = &i;
    *p = 2; // error: assignment of read-only location ‘*p’
}

2.3 포인터 변수 3[ | ]

const int const *p = &i;
#include <stdio.h>
void main() {
    int i = 1;
    const int const *p = &i;
    *p = 2; // error: assignment of read-only location ‘*p’
}

3 대상체 변수[ | ]

3.1 포인터 상수[ | ]

  • 포인터가 상수이기 때문에 값을 변경 할 수 없다.
int * const p = &i;
#include <stdio.h>
void main() {
    int i = 1;
    int * const p = &i;
    p++; // error: increment of read-only variable ‘p’
}

3.2 포인터 상수[ | ]

  • 포인터가 상수이기 때문에 값을 변경 할 수 없다.
const int * const p = &i;
#include <stdio.h>
void main() {
    int i = 1;
    const int * const p = &i;
    p++; // error: increment of read-only variable ‘p’
}

4 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}