c语言中,*p--=0什么意思?
7个回答
展开全部
*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
展开全部
首先要了解运算符的优先级,
--和*的优先级相同,但是从右向左结合,即先将指针p--,然后取指针p--后的位置的数据,赋值为0
--和*的优先级相同,但是从右向左结合,即先将指针p--,然后取指针p--后的位置的数据,赋值为0
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'\0'是结束符~用来表示一段字符串的结束,当编译器看见'\0',就知道这个字符串结束了。'\0'也是一个字符,也占用和普通字符一样的空间大小。
*p表示内存指向p的字符的ASCII码,也可以理解成char。
*p!='\0'的意思就是,*p的值不为结束符。这样的语句多用在处理字符串时,标示结束用。
*p表示内存指向p的字符的ASCII码,也可以理解成char。
*p!='\0'的意思就是,*p的值不为结束符。这样的语句多用在处理字符串时,标示结束用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*的优先级和--优先级一样高,这二个都是自右向左执行的,就是先执行p--,然后*p,然后赋值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
由于--的优先级比*高一些~你可以看成*(p--)=0;p减1赋值0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询