关于C++指针

本文主要介绍了C++中*和&两个运算符。*用于取指针指向的变量的值,&用于取地址。同时强调要区别声明时*作为类型符表示指针类型。还指出这两个运算符从右到左运算,使用*时要保证指针值合法,未初始化指针值非法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两个运算符啊.

* 运算地址,也就是取这个指针指向的变量的值.
& 取地址.

int i, *p;
p = &i; &i 就是取i的地址.p是指针,也就是存放地址的变量.
i = *p;  *p这个恰恰相反,取该指针指向的数值.

一定要区别于声明时候的语法.
int *p;  这里的*不是运算符,而是类型符,表示指针类型.
int *p = &i; 这个不是 *p = &i;而是 int *p; p=&i;

这两个运算符是从右到左的.
*&p = *(&p),先取p的地址,然后取这个地址指向的数值.所以*&p = p.
但是 &*P 就要注意了,因为*运算符一定要是合法的地址,否则程序出错.也就一定要保证p的值是合法的.
没有初始化的指针的值是非法的.
int *p;
*p = 11; //非法,p还没初始化;
p = (int*)12312;
*p = 22; //非法,可能指向非程序管理的地址空间.除非你知道该地址是合法的.
int i, pi;
pi = (int)&i;
p = (int*)pi.
*p = 33; ;//因为i是程序的一个变量,所以知道他的地址是合法的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值