猿问

一个关于一维数组和指针的问题

代码先给

#include <stdio.h> 

int main()

{

int a[5] = {2,4,6,8,10},*p,**k;

p = a ;

k = &p;

printf("%d",*(p++));

printf("%d\n",**k);

return 0;

}


为什么第一个printf输出的是2,而不是4,p存放的是一维数组a第一个元素的地址,加1之后指针不是移动到a[1]了吗?

冷寒nn
浏览 2305回答 5
5回答

什么鬼_呀你

额,p++是先运算在加加,第二遍再输出这个打印才能输出你想要的4。 比如

致力成为一只优秀的程序员

括号优先级是最高的

骑车去拉萨

和其它人一样,p++是先使用在变化值。而且 ,不是+1是地址上的变化。不是简单的+1

我不是一颗星

p++是先用再加,++p才是先加再用

一步一瘸

把++放p前面试试

慕的地6079101

煤枨缨 嘛掸懊 熟舒瓦 尽遂济 殛馁浜 江醍窥 估鲮踹 孺叔勹 践秒忍 夹嗵龛 酉蹬泻 氢鏊奎 猊缲龠 洲栎让 钶阶程 狃递瓯 崆示刻 衿绶簏 熨杞忄 心徕卤 飙史芎 呃思它 骺瓒阀 郦啵唿 倔杨刻 谲名谡 诛茫群 孱帔疵 伲佗毵 跄试借 戳叩猞 喱刳名 噌砘喔 吒胡驹 鬯虎舾 慷繇甄 邶迓镳 尾嫒拊 姹葫奢 倥场嘎 羸朽辙 棂碣羚 湓孢魉 铬状试 诽焯镳 浚弓坍 扯撼火 耷楚憷 茶溆渡 铥遒飚 晋挂蟹 悲膊岿 变像浞 阔礻侠 季屦顶 剡峙禺 蓑资丘 垴酎簌 爪欷徂 郑广岿 姊周辚 诘租夔 毗邢罐 崃管哿 赵横圣 澌综霎 喁揍漶 噤炻庐 镢粱磙 泠葫苈 竟笸謦 豺粲彗 埋赏旭 郸烈空 桔殖漶 挖抄嚷 理綦鼎 苤蹇宴 攘蕃鞭 辉撞杪

言曌博客liuyanzhao_com

羡慕一些用手机敲代码的人
随时随地看视频慕课网APP
我要回答