比如自加的时间是在判定完能否循环之后还是在一次循环之后intk=0while(n[i++]!='\0'){k=i+1}第一次循环时k为多少呢...
比如
自加的时间是在判定完能否循环之后还是在一次循环之后
int k=0
while(n[i++]!='\0')
{k=i+1}
第一次循环时k为多少呢
C语言当中自加的具体时间
答案:5 悬赏:20 手机版
解决时间 2021-12-23 03:10
- 提问者网友:書生途
- 2021-12-22 17:29
最佳答案
- 五星知识达人网友:千杯敬自由
- 2022-01-09 23:56
第一次循环时在k=i+1;前k的值是0,执行完k=i+1;后k就不知道了,因为i没有赋初值,是个机器垃圾值。
全部回答
- 1楼网友:七十二街
- 2022-01-10 03:11
while(n[i++]!='\0')是先判断,再执行循环体,所以先执行i++;故第一次循环时k为循环之初的i加2
- 2楼网友:爱难随人意
- 2022-01-10 02:00
判断的时候就完成自加了,如果你i初值为0那么第一次循环以后k值为2。
- 3楼网友:慢性怪人
- 2022-01-10 01:54
自增分前缀自增和后缀自增。无论是什么,执行自增都有1个副作用,就是原来变量的值会增加1。例如int a=1;a++;或int a=1;++a;执行后,a==2。
而他们的区别就在于整个自增表达式的值不同。如(a++)的值是变量a自增以前的值,如上面例子,(a++)==1。而(++a)的值则是变量a自增以后的值,即(++a)==1+1==2。
结合性分为左结合和右结合,只有优先级相同时才看结合性,例如表达式a+b*c+d-e*f,因为乘法优先级别高于加减,所以a+(b*c)+d-(e*f),又因+-运算是左结合,所以只a+(b*c)再(a+(b*c))+d再(a+(b*c)+d)-(e*f),假如是右结合,就先d-(e*f),也就反过来了。这里其实看不出有什么区别,怎么样结果都一样。
但看到*p++运算就不同了,因为*与++运算同一优先级,左结合结果就是(*p)++,右结合就是*(p++),这是区别很大的,书上还很多例子,你可以自己去看的。
强制转换问题就是在可以转换的情况下按要求转换。如float x=9.9;
则(int)x==9。将实型转为整型是采用截掉小数部分的做法。
例如还可以整型转字符常量等等,例如,int a=97;则(char)a=='a',因为字符a的ASCLL码为97。
()里面即是你要转换的类型
- 4楼网友:摆渡翁
- 2022-01-10 00:53
while(n[i++]!='\0')可以认为是while(n[i]!='\0'){i+=i+1;k=i+1;... //语句的紧接;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯