C++重学日记 2022年8月7日

69 阅读1分钟

C++指针

指针是操作内存的工具

基本原则:

  1. 指针也存在内存中,指针也有内存地址
  2. 指针的内容,是指向的一个内存地址,所以初始化或赋值,可以将指针赋值给指针,也可以将一个地址赋值给指针。
  3. 指针用*加变量名进行声明,如果想访问指针指向的内容,需要在前面加*
  4. 指针通过->可调用当前指向内存所属对象的内部成员。
struct S_Type {
    int data;
};

int main() {
    int *ptr1, *ptr2;
    int *ptr3, int4 = 4;

    int a = 2;
    ptr2 = &a;
    ptr1 = ptr2;

    cout << "ptr1 @" << ptr1 << endl;
    cout << "ptr2 @" << ptr2 << endl;
    cout << "*ptr1 = " << *ptr1 << endl;
    cout << "*ptr1 = " << *ptr2 << endl;
    //输出
    //ptr1 @0x7ff7b1b34768
    //ptr2 @0x7ff7b1b34768
    //*ptr1 = 2
    //*ptr1 = 2


    ptr3 = &int4;
    *ptr3 = 3;
    cout << "int4 = " << int4 << endl;
    cout << "ptr3 @" << ptr3 << endl;
    cout << "*ptr3 =" << *ptr3 << endl;
    //输出
    //int4 = 3
    //ptr3 @0x7ff7b1b3476c
    //*ptr3 =3

    //(4)
    S_Type *s = (S_Type *) malloc(sizeof(S_Type));
    s->data = 10;
    cout << "s->data = " << s->data << endl;
    //输出
    //s->data = 10

    return 0;
}