C语言菜鸟问题:假设d=5,p=3,d+=p++ 为什么等于8而不是9?p++不是调用后就加1吗?+=的优先级应该比++低

作者&投稿:将欧 (若有异议请与网页底部的电邮联系)
C语言菜鸟问题:假设d=5,p=3,d+=p++ 为什么等于8而不是9?p++不是调用后就加1吗?~

前++ 后++问题
后++,运算优先级别很低,
d+=p++ 中 p会先参加 d+=p 运算, 然后p自加1
++p,前++运算优先级别会很高
d+=++p,中p会先自增1,然后参加 d+= 运算

101的的阶层的值大概是10的160次方的样子,而long int型在tc里只能表示到2的31次方。输出0是由于超出了表示范围的错误。用double型应该差不多够了

p++在表达式中是先赋值再++,所以这里d=5+3=8之后,p变为4。优先级只能说明(p++)是一个整体,它的执行方式就是先赋值再++。(++p)是先++再赋值

给你个优先级的表参考吧 p++是先赋值后加1也就是

d+=p++

相当于

d+=p;

p++;



如果按着你的理解优先级的话 是这样的 :d+=p值等于8然后再+1等于9 如果是先按p++那么结果还是9

d+=p++
的意思就是:
d = d + p;
p = p + 1;

d+=++p 才等于9 ++ 在后标示先运算 再++ ++ 在前面表示先++ 再运算。 还懂啦!

p++是在d+=p++这条语句执行后P再进行自加.也就是先被调用后自加.而++p的话就是先自加后被调用,所以和+=还是++的优先级没有太大关系


C语言菜鸟问题:假设d=5,p=3,d+=p++ 为什么等于8而不是9?p++不是调用...
d+=++p,中p会先自增1,然后参加 d+= 运算

C语言菜鸟问题:假设d=5,p=3,d+=p++ 为什么等于8而不是9?p++不是调用...
p++在表达式中是先赋值再++,所以这里d=5+3=8之后,p变为4。优先级只能说明(p++)是一个整体,它的执行方式就是先赋值再++。(++p)是先++再赋值

菜鸟:简单C语言题目: 设x y t均为int型变量,则执行语句:x=y=2;t=...
t=++x||++y注意到后边这个是 取“或”,因此当程序执行了++x时,判断为真(不为0即为真)后边的++y就没有执行,如果你把x的值改为-1时,再执行t=++x||++y后,y就变为3了 因此结果是2

C语言 菜鸟问题
分析这个数列的分子分母,明显看出分母等于项数(n),第n项的分子等于前一项(n-1)的分子和分母相加。设分母是a(n)=n,分子式b(n)。于是,第n项我们可以这样表示:[a(n-1)+b(n-1)]\/a(n)。又因为是要求前二十项,所以选择for循环实现,分子分母分别用两个整形数组表示。最后的结果...

c 语言 菜鸟问题
函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。2. scanf的返回值 scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。如: scanf("%d,%d", &a, &b);如果a和b都被成功读入,那么scanf的返回值就是2 如果只有a被...

菜鸟的c语言问题
a%3表示a除以3得到的余数 17除以3等于5余2,a%3==2为1,所以a%3==2‖a-17为1,结果也就为1。

C语言菜鸟问题(13)
a b回车;b cdef回车 c 解释:getchar() 是输入一个字符;putchar() 输出一个字符; 比如putchar(c) 就是输出c,可是c是个变量,即输出c的变量的值……再说那个循环,k=0开始知道k=5,一共六次。回车意思是结束输入 (它也是作为一个字符存入缓存的,假如多个相同输入函数一起并列使用的...

c语言 菜鸟 设有函数调用语句 func((a1,a2,a3),(a4,a5)); 则函数func...
同理(a4, a5)表达式值为a5,所以func()调用等价于func(a3, a5),您想想形参有几个,2个没问题的,对吧。 本回答由提问者推荐 举报| 答案纠错 | 评论 8 3 wanglixin1001 采纳率:75% 来自:芝麻团 擅长: 电脑\/网络 编程语言 C\/C++ JAVA相关 其他编程语言 ...

在C语言中菜鸟问题
main(){\/\/scanf("%6.2d,%6d",&a,&b);这样写是错误的,你得到的数是随机数,不是正确的数,切记输入可以指定宽度但不能指定小数位数,不论是什么类弄的数,输出可以指定 \/\/改成下面我写的就可以了,不过输入时记住两个数之间要用逗号隔开,它们都是取6位 int a,b;scanf("%6d,%6d",&a...

请问几个菜鸟级C语言的问题!
2、函数原型声明就是在调用具体函数之前告诉编译器这个函数的存在,包括函数名、参数个数、参数类型三个信息(所以原型声明中仅仅写明这三个信息即可,如int f(int,int);格式与调用时类似)。声明在不同源文件里可多次出现。函数定义就是具体的函数体,函数内部的那些语句都是在给函数下定义。定义必须...

邹城市18711431275: C语言菜鸟问题:假设d=5,p=3,d+=p++ 为什么等于8而不是9?p++不是调用后就加1吗? -
法榕欣粒: 前++ 后++问题 后++,运算优先级别很低, d+=p++ 中 p会先参加 d+=p 运算, 然后p自加1++p,前++运算优先级别会很高 d+=++p,中p会先自增1,然后参加 d+= 运算

邹城市18711431275: c语言的基础问题菜鸟啊明天要教高手帮忙在线等啊~~ -
法榕欣粒: #include void main(){int x,i;printf("please input a int number:");//请输入一个数字:scanf("%d",x);//输...

邹城市18711431275: 菜鸟求助C语言的一个小问题忘大神帮忙 -
法榕欣粒: #include<stdio.h> int main() { int a[10],x,*p,*q; printf("请输入十个整数:\n"); for(p=a;p<a+10;++p) scanf("%d",p); printf("请输入待删数据:"); scanf("%d",&x); for(p=q=a;p<a+10;p++) if(x!=*p) *(q++)=*p; if(q==p) printf("查无此数!\n"); else { for(p=a;p<q;) printf("%5d",*p++); printf("\n"); } }

邹城市18711431275: 关于C语言的一个菜鸟级问题 -
法榕欣粒: printf("%d%d%d%d\n",1+2,5,-2*4,11%3); "%d%d%d%d\n" 这里的点表示显示的小数位,给你看一个例子,%10.6f 表示输出的浮点数占10位,其中小数点后面有6位,整...

邹城市18711431275: C语言高手进 帮忙= = 菜鸟问题 -
法榕欣粒: 你的题目都挺简单的但我没有那么多时间,挑几个简单的 这是第三个 #include<stdio.h> void main() { int sum=0,i; for(i=1;i<102;i=i+4) sum+=i-(i+2); sum+=103; printf("%d\n",sum); } 第五个 #include<stdio.h> void main() { int i,a,b,c,d,t=0; for(i=...

邹城市18711431275: C语言菜鸟提 -
法榕欣粒: 将while((bott-top)>=1);改为((bott-top)>1);就可以了,因为例如你输入的是5,折半到最后时,bott==13,top==12满足条件,造成死循环

邹城市18711431275: C语言我又有一个菜鸟级问题不会了 -
法榕欣粒: for循环执行了三次,i由1变为3,最后i的值赋予sum,所以结果为3.可以这样改一下程序:for (i = a; i sum += i;

邹城市18711431275: c语言菜鸟不懂就问!!! -
法榕欣粒: 1.printf中输出的%c和%d一个是输出字符.一个是输出整型值,所以第一个输出肯定不是50勒,而是字符'2'.2.还是数据类型的问题,char c=32 :是将32这个整型值赋给字符变量c,编译系统会自动将数值32强制转换成对应的字符赋给c,而char ...

邹城市18711431275: C语言,问题~~~菜鸟求解
法榕欣粒: 你程序的问题确实出在回车键上,回车键=回车+换行(ASCII为10和13)你可以在需要时清空键盘缓冲区来解决这个问题,函数fflush(stdin); (以下是你的程序,只在倒数第4行和第11行加了这个函数) 还有一个错误,你的统计字符个数的那几...

邹城市18711431275: C语言问题 -
法榕欣粒: /*应该有预处理指示吧……*/#include int d=1 ; // 定义一个变量 d 并赋值 1; fun(int p) /* 额,我怎么觉得这是错的……应该是 void fun(int p) 吧...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网