C语言问题?

设i为int型变量,则下面程序段的输出结果是_______。 for(i=1; i<=3; i++); printf("OK");

结果是22
7+7+8=22
你可以将
(++i)+(++i)+(++i)
++i是先+1再计算,还有这里的运算顺序是从左到右,所以应该是
7+7+(++i)=14+8=22(前两个相加时,i先加1,加了两次,所以是7,因为第三个++i还没运算到,所以保持不变)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-05
打印输出一个OK。因为前面循环for语句有分号结束。所以后面的printf语句不在循环内,不受循环语句影响。
第2个回答  2020-05-11
有错误,指针变量s没有被初始化,它指向一个未知的存储单元,而后面出现了*s=*(p+3);
这时对指针变量s引用可能会破坏程序或数据。
应改为int
*s=null;
第3个回答  2020-05-09
#include
<stdio.h>
void
main()
{
int
a[4]={10,20,30,40};
int
*p,*s;
p=a;
s=p+3;//改成这样
printf("%d",*s);
}
问题出在*s=*(p+3);s指针没有指向的内存区域,*s根本就没有指向内存区域,更别说给其赋值了
第4个回答  2020-05-09
数学知识你学过不少了吧,数学里面的一些固定公式,类似某个定义,不同公式之间是互不影响的,然后你做题的时候直接套用某某公式就行,函数也是这样,只是函数是由你自己写的公式,然后自己写函数调用它!至于函数内部该怎么写,就看具体问题分析了!
相似回答