c语言中,*p--=0什么意思?

 我来答
天云小店
2015-05-29 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:746万
展开全部

*p--=0表示先对指针p所指向的内存单元赋值为0,之后,将指针p的地址减1一个内存单元的大小。


可以通过如下的程序段来进行理解:

int a[]={1,2,3,4}; // 定义一个int型数组,并进行初始化
int *p=&a[2];      // 定义一个int型指针变量,并指向a[2]所在的内存单元
printf("%x\n", p); // 输出指针p的内存地址,结果为0x2cfb28
*p--=0;  // 将内存地址为0x2cfb28的内存单元赋值为0(即a[2]=0),之后内存地址减4(因为一个int类型占4个存储单元)
printf("%x\n", p); // 输出指针p的内存地址,结果为0x2cfb24

以上程序执行后数组a的值为1 2 0 4

剑圣灬逍遥
2012-07-25 · TA获得超过1935个赞
知道小有建树答主
回答量:151
采纳率:100%
帮助的人:180万
展开全部
首先要了解运算符的优先级,
--和*的优先级相同,但是从右向左结合,即先将指针p--,然后取指针p--后的位置的数据,赋值为0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钮发须古香
2019-01-09 · TA获得超过3668个赞
知道小有建树答主
回答量:3009
采纳率:25%
帮助的人:199万
展开全部
'\0'是结束符~用来表示一段字符串的结束,当编译器看见'\0',就知道这个字符串结束了。'\0'也是一个字符,也占用和普通字符一样的空间大小。
*p表示内存指向p的字符的ASCII码,也可以理解成char。
*p!='\0'的意思就是,*p的值不为结束符。这样的语句多用在处理字符串时,标示结束用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3dfab56
2012-07-25 · TA获得超过259个赞
知道答主
回答量:34
采纳率:0%
帮助的人:20.7万
展开全部
*的优先级和--优先级一样高,这二个都是自右向左执行的,就是先执行p--,然后*p,然后赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jinceo
2012-07-25 · TA获得超过460个赞
知道小有建树答主
回答量:678
采纳率:0%
帮助的人:308万
展开全部
由于--的优先级比*高一些~你可以看成*(p--)=0;p减1赋值0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式