请问c语言中类似 *q=(*p)-'0' 这样的语句要怎么理解。。。实在看不懂,求教

 我来答
上海中法埃菲
2016-02-14
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
*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
————————————————

  如果能够帮助你,麻烦采纳

  你的采纳是我答题的动力

  ——谢谢你给我的支持!!!
cooke1234
2016-02-14
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
凡是变量前面带有星号的,表明此变量是一个地址。例如:*q, *p表示q和p都是地址。
地址和星号合起来表示,地址指向的数据。
q是地址,*q表示一个数据。p是地址,*p表示一个数据。
‘0’表示一个字符,用于数值计算时,采用其ASCII码进行计算,即48.

所以*q=(*p)-'0'相当于,一个数据减去48之后的结果赋值给另外一个值。

类似于 A=B-48
更多追问追答
追问

图中代码中这一步又要怎么理解呢,求指教
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式