社区
非技术区
帖子详情
*p=&i可以这样理解吗?
peng_peng
2002-01-03 05:53:58
首先是把变量i赋给了*p
同时把把变量i的地址赋给了p ,可以说有两种赋值。
其实只有一种赋值,从含义上说有两种
...全文
1614
16
打赏
收藏
*p=&i可以这样理解吗?
首先是把变量i赋给了*p 同时把把变量i的地址赋给了p ,可以说有两种赋值。 其实只有一种赋值,从含义上说有两种
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stl_liu
2002-01-07
打赏
举报
回复
sorry,的确是我错了,应该是:
int *pp; //pp是一个指针
int **p = &pp; // p是一个指针,指向另一个指针pp,那个指针pp则指向一个int
int i = 10; // i就是将要被指向的int。 :)
*p = &i; // 现在嘛 ... **p == 10;
谢谢MarkDong的指教。
davidzgz
2002-01-07
打赏
举报
回复
如果*p为指针,即p为二级指针,
*p=&i的意思为*p保存的值是i的地址,
即**p=i,
或p=&(&i)
定义时 int &i ;表示引用,参见《esential C++》,
在运算时,&为取址符号,清详细看看书籍《esential C++》这部分的讲解
MarkDong
2002-01-07
打赏
举报
回复
小刘飞刀好像说得不对吧, 他的程序能正确执行吗?我怀疑
如果问题中的*p=&i;不是出现在定义p的时候,也就是说不是指int *p=&i;
那么应该是将i的地址存放到了p指向的地址中,p和i并没有直接的关系。
cxjddd
2002-01-06
打赏
举报
回复
c++对象模型这本书价格在50元左右,那次新华书店降价,没买到,可惜。
*p=&i是一个有问题的表达式。应该是p=&i或*p=i。可是二者还是有不同。
除非*p是一个指针。
peng_peng
2002-01-06
打赏
举报
回复
注意
谢谢捧场!
c++对象模型这本书我没有,希望大家推荐几本书,最好有电子版的共下载了,随后散分!
Lemon-sai
2002-01-04
打赏
举报
回复
int *p=&i
*在这里只是说明p是一指针,
和*运算(地址p对应的值)是不一样的
这里说明p是指向i的指针
Last_Dodo
2002-01-04
打赏
举报
回复
*p=&i是指针变量的赋值。显然,p是二重指针(double pointer)。*p是指针,给它赋值的方法是用new来分配新内存或用&来取得地址。这里i并没赋给*p。但*p=&i后,可同过p来访问i.
sharonyym
2002-01-04
打赏
举报
回复
同意andy_lau()的意见 :)
stl_liu
2002-01-04
打赏
举报
回复
同意andy_lau()的意见。
好比是:
int **p; // p是一个指针,指向另一个指针,那个指针则指向一个int
int i = 10; // i就是将要被指向的int。 :)
*p = &i; // 现在嘛 ... p指向(*p),(*p) == 10;
chengyumao
2002-01-03
打赏
举报
回复
gzgz
gernal_dn
2002-01-03
打赏
举报
回复
int *p=&i;//p指针地址 =i的地址
int **pp;
*p=&i;//p指针指向i的地址
panjet
2002-01-03
打赏
举报
回复
有这么复杂吗?
p指针指向i的地址!
_xiaolifeidao
2002-01-03
打赏
举报
回复
我建议去看一下c++对象模型,那里面对于指针的解释绝妙:)
andy_lau
2002-01-03
打赏
举报
回复
*p=&i的含义是*p指针指向i的地址,p是指向 指向i地址的指针 的指针是个二重指针
我认为他们之间并不存在相互赋值的关系,而是谁指向谁的关系。
veinstone
2002-01-03
打赏
举报
回复
要注意运算符的优先级和解和顺序!
编译器并没有吧变量i赋给*p,但是建立了关系!
NowCan
2002-01-03
打赏
举报
回复
缺少定义,含义不清。
对int * const p=&i, int const * p=&i与int const * const p=&i的
理解
对int * const p=&i, int const * p=&i与int const * const p=&i的
理解
对int * const p=&i, int const * p=&i与int const * const p=&i的
理解
,指针常量,指向常量的指针与指向常量的指针常量 一:首先这里指明const的用法: const 常量类型 ...
关于指针 *s=t和s=&t
关于指针 *s=t和s=&t 当你看到这个,我想告诉你,我曾经被这个问题困扰了许久,废话不多说,直接上例题。 #include <iostream> using namespace std; int k=7; void f(int **s) { int *t=&k; *s=t;//s=&t; **//这两条语句就是我们今天关注的重点** ...
int a=301;char *p=(char *)&a; printf("%d,%d",*p,*++p);
题目: #include<stdio.h> int main(){ int a=301; // 1_0010_1101B int x=1; x>>8?printf("big\n"):printf("small\n"); //检测大小端 char *p=(char *)&a; printf("%d,%d",*p,*++p); retur...
C语言 指针 类型的用法大汇总(指针/引用/取值) *与&
今天刚好看汇编需要,就学了学。 本篇文章会不断完善,有疑问,请在评论区留言 对星号 * 的总结 1.表示乘法,例如int a = 3, b = 5, c; c = a * b;,这是最容易
理解
的。 2.表示定义一个指针变量,以和普通变量区分开,例如int a = 100; int *p = &a;。 3.表示获取指针指向的数据,是一种间接操作,例如int a, b, *p = &...
int a[5]={1,2,3,4,5}; int *p=(int*)(&a+1); printf("%d",*(p-1)); 答案为什么是5?
这个问题的关键是
理解
&a a是一个数组名,也就是数组的首地址。对a进行取地址运算符,得到的是一个指向数组的指针!!!!这句话尤为重要!也就相当于int (*p) [5] = &a;p是一个指针,它指向的是一个包含5个int元素的数组!!那么执行p+1后,p的偏移量相当于 p + sizeof(int) * 5 !!而程序中强制将指针p转换成一个int* 那么 p -1 其实就是 ...
非技术区
15,445
社区成员
58,119
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章