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);
这段C语言的代码是什么意思?
答案:2 悬赏:80 手机版
解决时间 2021-02-01 14:02
- 提问者网友:锁深秋
- 2021-01-31 15:07
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-01-31 16:42
这是基本的东西呀,找本书看就明白....
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
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
全部回答
- 1楼网友:平生事
- 2021-01-31 17:45
首先,
char *p, s[ ]= "abcdefgh";
声明了一个字符指针p,和一个长度由初始值决定的字符数组s,字符数组s用字符串"abcdefgh"进行了初始化。
其次,
p = s;
将p指向字符数组的首元素,即p指向数组s中的字符'a',因为数组名代表的就是数组首元素的地址。
p+3表示把p原来指向的位置偏移3个单位,所以p+3指向了数组s中的字符'd',
最后
printf("%s", p+3);
从p+3指向的这个位置开始打印字符串, %s是个格式化说明符,表示后面将有字符串参数(这里是p+3),相当于占个位置,等着后面的p+3指向的字符串来填充。
最后在屏幕上打印出来的结果就是
defgh
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯