const 포인터

7394 단어 Const
포인터를 사용할 때는 포인터 자체와 포인터가 가리키는 두 가지 목표와 관련된다.const 포인터 변수는 다음과 같은 세 가지로 요약할 수 있다.상수를 가리키는 바늘 변수;  2.일반 포인터 변수;  3.상수를 가리키는 상수 바늘 변수.
1. 상수를 가리키는 포인터 변수: 선언 형식: const type * varname;또는 type const * varname;특징: 값 변경 가능.포인터를 const로 표시하고 포인터가 아닌 대상을 상수로 합니다.주의: 상수를 가리키는 바늘은 반드시 진정한 상수를 가리키는 것은 아니다. 변수도 가리킬 수 있다. 단지 이 바늘의 각도에서 볼 때, 그 바늘이 가리키는 대상은 상수이며, 이 바늘을 통해 가리키는 대상을 수정할 수 없다.초기화하지 않고 다른 객체를 가리킬 수도 있습니다.
예1:
    int a = 0,b = 1;

    const int c = 3;

    const int* pi; //  (const int*) pi;

    pi = &a;

    //*pi = 10; // : 。

    a = 10;

    pi = &b;

    //*pi = 20; // : 。

    b = 20;

    pi = &c;

    //*pi = 30; // : 。

예2:
    char const* pc = "asdf";

    //pc[3] = 'a'; // : 。

    pc = "ghik";



    char const* step[3] ={"left","right","hop"};

    step[2] = "skip";

    //step[2][1] = 'i'; // : 。

 
2. 일반 포인터 상수: 선언 형식: type* const varname;const (char*) pContent;특징: 변경 가능 대상.바늘 자체가 가리키는 대상이 아니라 상수로 표시하려면, 연산자 *const를 사용해서 초기화해야 합니다. 이 바늘을 통해 가리키는 대상을 수정할 수 있지만, 다른 대상을 가리키면 안 됩니다.
예:
    int a = 0,b = 1;

    int* const pi = &a; //  int* (const pi) = &a;

    *pi = 10;

    //pi = &b; // :pi , 。

 
3. 상수를 가리키는 일반 포인터 변수: 선언 형식: const type * const varname;특징: 값과 대상은 모두 바꿀 수 없습니다.두 목표를 모두 상수로 하려면, 둘 다const라고 성명해야 한다.
예1:
    int a = 0,b = 1;

    const int c = 3;

    const int* const pi = &a; // : (const int*)(const pi) = &a;

    //*pi = 10; // : 。

    a = 10;

    //pi = &b; // : 。

 
일반적으로, 성명에 const 설명자가 나타날 때, 성명 요소나 const 구성원 함수 성명에 있는 함수의this 바늘을 수식합니다.주의: 변수의 주소를 상수를 가리키는 바늘 변수에 부여할 수 있습니다. 이로 인해 해가 되지는 않지만, 상수의 주소는 구속이 없는 바늘에 부여할 수 없습니다.예:
    int a = 1;

    const int c = 2;

    const int* p1 = &c;

    const int* p2 = &a;



    int* p3 = &c; //

    *p3=3;

    printf("%d
",c);//c int* const p4 = &c; // ! p4 。 *p4=4; printf("%d
",c);//c const int* const p5 = &c;

 
 

좋은 웹페이지 즐겨찾기