网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月07日
漏签
0
天
c语言吧
关注:
798,837
贴子:
4,356,361
看贴
图片
吧主推荐
视频
游戏
1
2
下一页
尾页
50
回复贴,共
2
页
,跳到
页
确定
<<返回c语言吧
>0< 加载中...
指针答疑
只看楼主
收藏
回复
Amoxicilliner
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
关于这段代码,int *p=&i,那么p获取的应该是i的地址,*p不就应该是i的地址的值吗,为什么会是1呢?
如果说i的地址是70,*p的结果应该是70啊
郭晨伟sunny
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
p才是i的地址,*p就是i的值。
2025-06-07 09:03:21
广告
王大仙儿
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这段代码就是为了让你明白地址和指针,当在定义变量i的时候,内存中已经给i分配了一个整形数据需要的空间(4个字节),其首地址就是&i,紧接着定义了指针p,并将指针p指向了变量i的地址,所以在下面*p的操作,就是相当于在i所对应的内存空间内进行操作,可能我理解你的问题没理解到点上,p是个指针,并且p在内存中也是有内存空间的,你可以把p也理解为跟i相同的东西,只是i中存的是变量值,但是p的内存中寸的是指向的地址,*操作符就是就是去找p里面存的地址的内存空间了,这样说明白了吗?如果不明白,那我就给你讲的更直白一点,假设i就是一个保险柜,里面放的是钱,p是另外一个保险柜,上面写的是i的编号,只有当你在p里面找到i保险柜的编号,才能到i保险柜里面去取钱。如果这样还没理解的话,那我就爱莫能助了。
Bubbl
e
马猴烧酒
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
那p又是啥
缺心眼的花
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
有任何问题可以来请教免费大神解答
一周休七日
帕秋莉糕
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
int *p=&i;相当于int *p; p=&i;
&i是70,那p不就是70吗
Amoxicilliner
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
嗯,这个我知道,我不明白的是为啥*p=1了
Amoxicilliner
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@王大仙儿,图应该是这样吧
2025-06-07 08:57:21
广告
Amoxicilliner
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@王大仙儿💯
333xxxyyywww33
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
int i=1;
int *p=&i;//定义一个指针变量p p=&i
*p=*p+1; // *p=*&i=i 所以 *p=*p+1; 就是i=i+1
printf("i=%d,*p=%d\n",i,*p);//输出i=2 *p=2
Amoxicilliner
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我明白了,谢谢各位大佬指点
Jji
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不明白就看书 p=&i , *p都什么意思 书上都讲得很清楚了 用不着你去猜
大凤
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你自己print一下&i,p,*p不就行了,非要在这争
Hades
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
* 不是取值,严谨地说应该是间接寻址。
2025-06-07 08:51:21
广告
破面一护
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
建议你使用int* p代替int *p,这样你就能理解了,int*是一个整体,这里的*和解引用*p的*不一样
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示