结果是22
7+7+8=22
你可以将
(++i)+(++i)+(++i)
++i是先+1再计算,还有这里的运算顺序是从左到右,所以应该是
7+7+(++i)=14+8=22(前两个相加时,i先加1,加了两次,所以是7,因为第三个++i还没运算到,所以保持不变)
打印输出一个OK。因为前面循环for语句有分号结束。所以后面的printf语句不在循环内,不受循环语句影响。
有错误,指针变量s没有被初始化,它指向一个未知的存储单元,而后面出现了*s=*(p+3);
这时对指针变量s引用可能会破坏程序或数据。
应改为int
*s=null;
#include
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根本就没有指向内存区域,更别说给其赋值了
数学知识你学过不少了吧,数学里面的一些固定公式,类似某个定义,不同公式之间是互不影响的,然后你做题的时候直接套用某某公式就行,函数也是这样,只是函数是由你自己写的公式,然后自己写函数调用它!至于函数内部该怎么写,就看具体问题分析了!