C语言中*p=a[0]p a与p a的区别=a[0]有什么区别?

c语言中*p++和(*p)++有什么区别?_百度知道
c语言中*p++和(*p)++有什么区别?
C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样;在(*p)++中,由于()的优先级比*和++都高,所以++作用在()内的表达式*p上。比如有:int x,y,a[]={1,2,3,4,5},*p=a,*q=a;x=*p++;//执行这一句后x=a[0]=1,p=a+1y=(*q)++;//执行这一句后,y=a[0]+1=2,q仍然=a
其他类似问题
为您推荐:
提问者采纳
题目中是*q,为3,所以此时的*q就是x的值,相当于让p指向了x所在地址的下一个位置,再使p加1 &#47:是先取出*p的值:*p++,而对于x则是没有任何影响
(*p)++;*p则是p指向的位置对应的值:是使*p的值加1;&#47,给p加1;&#47./p是个指针,当输出*q之后,再给*q即x自加1我看书中解释
提问者评价
其他3条回答
,3;%d\p++;,然后完成自增操作的所以printf(&quot,*q);n&相当于printf(&quot,*p);%d\相当于printf(&%d\%d&#92,*p++);;而printf(&;n&n&quot后自增操作符总是先把原值赋值给表达式;n&quot,(*q)++);(*q)++所以答案应该是3
printf(&%d\n&,(*q)++);
先取出 (*q) = 3;
等取完值后 *p再加1 才是你说的 4
(*p)++:是使*p的值加1. 先取得的是*p的值.
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁二维数组p&a[0]+12和p&a+12有什么区别?_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:453,342贴子:
二维数组p&a[0]+12和p&a+12有什么区别?收藏
#include "stdio.h"#define m
4#define n
3void main(){ int a[m][n],*p,i, l=m*n; for(p=a;p&a+l;p++)
scanf("%d",p); for(i=0;i&m;i++)
{ for(p=a[i];p&a[i]+n;p++)
printf("%5d",*p);
printf("\n");
} p&a[0]+12和p&a+12有什么区别
最开始的时候a就是a[0]咯;但是如果你的a是跳了下一个的时候;在a+12就和a[0]+12不一样了。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或C语言的小问题,(*p)[5]和*p[5],有什么区别,p都代表什么?
(*p)[5] -- 小括号计算优先.所以int (*p)[5]; 表示 p 是 一个 指针,用于 指向 有5个元素的 int 型 数组.----------------*p[5] -- 方括号优先,p[5] 是 数组,*p[5] 则是指针数组.表示 p 是 五个 指针.int *p[5]; 表示 p 是 指针数组,可以存放 5 个指针.它们5个,各自 可以 指向 各自的 int 目标.
为您推荐:
其他类似问题
扫描下载二维码*P=&a[0] 和P=&a[0]有什么区别_百度知道
*P=&a[0] 和P=&a[0]有什么区别
p=&a[0];相当于int *pC语言里指针变量那块,我不太明白,我看到这个不太明白?;然后它特别强调是p=&[0]而不是*p=&a[0],它有个粒子是
int *p=&a[0],那第二步两个有什么区别呢,她第一步是将指针变量P定义为整型变量
比如说int *p之后。
而0xCCCCCCCC和0x内存区通常是不可写的,且a[0]的值是1,这样就会报错:
a是一个数组,p的初始值可能是0xCCCCCCCC(Debug版本)或者0x(Release版本)。
如果*p=&a[0]的话。
int *p,通常占用4个字节(比如初始地址是0x),将会把0xCCCCCCCC或者0x内存之后4个字节的值变为0x; p=&a[0],a[0]=1,它在内存中的初始地址比如说是0x(简单假设),&a[0]=0x,后面4个字节中存储的值是0x。
于是,也就是说,也就是a[0],如果你写一句*p=&a[0]的话,很容易出问题,内存0x中存储的值是1举个例子吧,也就是说从0x开始。所以*p等于1;
指针p会有一个自己的内存地址。p的值是&a[0]。这个时候。
*p的值就等于p所指向的内存地址中存储的值
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言中 r[0] = a * p / p * 是什么意思?_百度知道
C语言中 r[0] = a * p / p * 是什么意思?
请帮忙按数学语言翻译出来C语言中 *
优先级好像在 &#47,是 r[0] = (a × p)÷( p × q)
之前,谢谢了啊
提问者采纳
提问者评价
能具体点吗
其他类似问题
为您推荐:
其他1条回答
要是两两相乘再除的话最好加两个括号?这样写可能会和你想要的结过不一样,两个结果会有偏差的,只要整数位; 模除
就是忽略余数。毕竟模除舍弃了余数。乘除法则应该明白吧*乘号&#47
可是C语言中 *
优先级好像在 /
之前啊,是 r[0] = (a × p)÷( p × q)
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 d p的 d a区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信