猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
c指针不懂啊
*pi=&i;什么意思 求详细解释
pi=&i;我知道啥意思,*pi=&i这样写真的对吗?
beyourpersonalbest
浏览 1324
回答 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内存地址中保存的值。
2
0
0
血多多
没问题,看情况。①如果pi是一维指针,那么初始化时定义:xx i; xx *pi=&i;(注意顺序,xx 为数据类型) 这是完全OK的。②如果不是初始化时定义,那就不好说了,比如i为整形,pi为二维指针,这就OK,完全没问题。 pi与i均是同类型的多维指针,且pi比i多2维,那也是OK的。其他情况基本就是错误的了(为什么说基本,因为整型与字符型有时是可以通用的)。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续