首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言中得 a[++k],该如何处理

2012-03-09 
c语言中得 a[++k]#include stdio.h#include stdlib.hint main(){int k,m,a[10]m 1k 8for(k0k

c语言中得 a[++k]
#include <stdio.h>
#include <stdlib.h>

int main()
{
  int k,m,a[10];
  m = 1;
  k = 8;
  for(k=0;k<10;k++)
  {
  a[k]=k;
  }
  a[++k] = 12;
  printf("%d,%d",a[8],a[9]);//输出8,9

  return 0;
}
其中 a[++k] = 12之后,a[8],a[9]都不是12,那么12去哪里了??
求高手解释!!

[解决办法]

探讨

还有 a[k++] = 17;
printf("%d\n",k);
之后,k怎么就变成18了???

[解决办法]
执行完
for(k = 0; k < 10; k++)
{
a[k] = k;
}
的时候,k已经等于10了。
不是前面的 k = 8 。

a[++k] = 12; ===> a[11] = 12;

访问数组越界了。
[解决办法]
for(k = 0; k < 10; k++)
{
a[k] = k;
}
后,k=9;
a[++k] = 12; ===> k=11;
越界了

热点排行