指针
指针是“指向”另外一种类型的复合类型。
特性:
1、指针存放某个对象的地址;
2、指针值有4种状态:
- 指向一个对象。
- 指向紧邻对象所占空间的下一个位置。
- 空指针,意味着指针没有指向任何对象。
- 无效指针,上述情况之外的值
3、为*p赋值,改变p对指向对象的值;为p赋值,就是改变p指针的指向
4、为指针赋nullptr值初始化空指针,也可以把初始值定为0
5、不能把int变量直接赋值给指针
6、指针可以用在条件表达式中,非0即为true
实例一:
int ival = 42;
int ival2 = 40;
int &inval = ival;
int *p1 = &ival;
int *p2 = &inval;
cout << ' ' << inval << ' ' << &inval << endl;
cout << *p1 << ' ' << p1 << endl;
cout << *p2 << ' ' << p2 << endl;
>>>42 0x7ffc9301a4f8
>>>42 0x7ffc9301a4f8
>>>42 0x7ffc9301a4f8
实例二:
*p2 = 20;
cout << p2 << ' ' << *p2 << ' ' << inval << endl;
p2 = &ival2;
cout << p2 << ' ' << *p2 << ' ' << inval << endl;
>>>0x7ffc9301a4f8 20 20
>>>0x7ffc9301a4fc 40 20
实例三:
*p2 = *p2 * *p2;
cout << p2 << ' ' << *p2 << ' ' << inval << endl;
>>>0x7ffc9301a4fc 1600 20