c指针不懂啊

*pi=&i;什么意思 求详细解释

pi=&i;我知道啥意思,*pi=&i这样写真的对吗?

beyourpersonalbest
浏览 1320回答 2
2回答

MadMarical

你好。*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:100data is:100&data is:0x7fff5fbff778由上述结果可以看出,&为取地址符,指针*p中的p保存的是内存地址。使用解引用符号*能得到p内存地址中保存的值。

血多多

没问题,看情况。①如果pi是一维指针,那么初始化时定义:xx i; xx *pi=&i;(注意顺序,xx 为数据类型) 这是完全OK的。②如果不是初始化时定义,那就不好说了,比如i为整形,pi为二维指针,这就OK,完全没问题。                                                                  pi与i均是同类型的多维指针,且pi比i多2维,那也是OK的。其他情况基本就是错误的了(为什么说基本,因为整型与字符型有时是可以通用的)。 
打开App,查看更多内容
随时随地看视频慕课网APP