读书人

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

发布时间: 2012-03-09 16:54:58 作者: rapoo

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;
越界了

读书人网 >C语言

热点推荐