*pi=&i;什么意思 求详细解释pi=&i;我知道啥意思,*pi=&i这样写真的对吗?
2 回答
已采纳
MadMarical
TA贡献79条经验 获得超122个赞
你好。*p = &i 是错误的写法。
此处的&符号是取地址符,而*p为p这块内存地址里的值。所以在编译器中,*pi = &i是错误的。
示例程序如下:
#include <iostream> using namespace std; int main() { int data = 100; int *p; p = &data; cout<<"p is:"<<p<<endl; cout<<"*p is:"<<*p<<endl; cout<<"data is:"<<data<<endl; cout<<"&data is:"<<&data<<endl; return 0; }
结果为:
p is:0x7fff5fbff778
*p is:100
data is:100
&data is:0x7fff5fbff778
由上述结果可以看出,&为取地址符,指针*p中的p保存的是内存地址。使用解引用符号*能得到p内存地址中保存的值。
血多多
TA贡献1条经验 获得超0个赞
没问题,看情况。
①如果pi是一维指针,那么初始化时定义:xx i; xx *pi=&i;(注意顺序,xx 为数据类型) 这是完全OK的。
②如果不是初始化时定义,那就不好说了,比如i为整形,pi为二维指针,这就OK,完全没问题。
pi与i均是同类型的多维指针,且pi比i多2维,那也是OK的。
其他情况基本就是错误的了(为什么说基本,因为整型与字符型有时是可以通用的)。
- 2 回答
- 0 关注
- 1323 浏览
添加回答
举报
0/150
提交
取消