C++指针
指针是操作内存的工具
基本原则:
- 指针也存在内存中,指针也有内存地址
- 指针的内容,是指向的一个内存地址,所以初始化或赋值,可以将指针赋值给指针,也可以将一个地址赋值给指针。
- 指针用
*
加变量名进行声明,如果想访问指针指向的内容,需要在前面加*
- 指针通过
->
可调用当前指向内存所属对象的内部成员。
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;
}