这段C语言的代码是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/13 03:36:15
static int a[]={5,3,7,2,1,5,4,10};
int s=0, k;
for (k=0;k<8;k+=2)
s+=*(a+k);

这是基本的东西呀,找本书看就明白....
static int a[]={5,3,7,2,1,5,4,10};//定义静态数组变量a,并给它8个整数值
int s=0, k; //定义s,k 整数变量,并将s赋予0值
for (k=0;k<8;k+=2)s+=*(a+k);//循环语句,k的值开始为0,每循环一次k的值递增2,当k大于或等于8时循环就结束.
s+=*(a+k);//循环体,每循环一次,s的值将增加*(a+k)
*(a+k)//其中*为指针符号,a为数组a[]的首值地址,*(a+k)就是数组a[]第k+1个元素的值,若k=0则*(a+k)=*(a+0)=5,而当k=2时*(a+2)=7.
整个循环过程,s的值变化如下 :
s=0+5 5
s=5+7 12
s=12+1 13
s=13+4 17

把数组a中第偶数个数相加
既:
s=a[0]+a[2]+a[4]+a[6]
=5+7+1+4
=----

难点是s+=*(a+k);
也就是把取指针a+k的内容,再加到s上实际上是:
s=s+a[k]