C语言中简单数组的减量和增量示例
大约几个月前,我开始学习编程,在学院学习C语言。今天,我尝试做一些事情,但编辑器中的结果并没有显示正确的结果。代码如下:C语言中简单数组的减量和增量示例,c,arrays,C,Arrays,大约几个月前,我开始学习编程,在学院学习C语言。今天,我尝试做一些事情,但编辑器中的结果并没有显示正确的结果。代码如下: #include <stdio.h> int main() { int a[7]={1,2,3,4,5,6,7}; int x,y,z; x=--a[5]; //In my opinion I got the result 5, because at the index of 5 //is ele
#include <stdio.h>
int main()
{
int a[7]={1,2,3,4,5,6,7};
int x,y,z;
x=--a[5]; //In my opinion I got the result 5, because at the index of 5
//is element with value of 6, I decremented that number and got 5
y=a[3]+a[x]; //a[3]+a[5] in this case, I get a[8], and value for that index is 9
z=a[x++]; //I do this: a[5++], switched the value of x which is 5 and increment, and at the index of 5 was value of 6, I think
printf("%d,%d,%d",x,y,z);
}
#包括
int main()
{
int a[7]={1,2,3,4,5,6,7};
int x,y,z;
x=--a[5];//在我看来,我得到了结果5,因为在索引为5时
//是值为6的元素,我将该数字递减,得到5
y=a[3]+a[x];//a[3]+a[5]在这种情况下,我得到一个[8],该索引的值是9
z=a[x++];//我这样做:a[5++],切换x的值,即5和增量,在索引5处,我想是值6
printf(“%d,%d,%d”,x,y,z);
}
在我的编辑器中,结果是:6,9,5
在我的例子中,我得到了结果:
5,9,6
我知道这是个没用的问题,但我解决不了这个问题。
也许是关于递增和递减的运算。x=--a[5]=>x=-(a[5])=>x=(a[5]=a[5]-1)=>x=(a[5]=6-1)=>x=(a[5]=5)=>x=5
y=a[3]+a[5]=>y=4+5==>y=9
z=a[x++]=>z=a[x]和x=x+1=>z=a[5]和x=5+1=>z=5和x=6
最后x=6,y=9,z=5
万一你弄错了,a[3]+a[5]不等于a[3+5],也就是a[8]。a[3]+a[5]=a[3]处的值+a[5]处的值
而且,看起来你对事情的理解有点错误。数组a的索引范围仅为0到6。记住,索引8及以上的值不是8,9,10。。。它们是垃圾值,也可能是负数。而通过[8]…之类的东西访问它们将导致未定义的行为。x=--a[5]=>x=(-(a[5])=>x=(a[5]=a[5]-1)=>x=(a[5]=6-1)=>x=(a[5]=5)=>x=5 y=a[3]+a[5]=>y=4+5==>y=9 z=a[x++]=>z=a[x]和x=x+1=>z=a[5]和x=5+1=>z=5和x=6 最后x=6,y=9,z=5
万一你弄错了,a[3]+a[5]不等于a[3+5],也就是a[8]。a[3]+a[5]=a[3]处的值+a[5]处的值
而且,看起来你对事情的理解有点错误。数组a的索引范围仅为0到6。记住,索引8及以上的值不是8,9,10。。。它们是垃圾值,也可能是负数。通过[8]之类的东西访问它们会导致未定义的行为。这是不正确的:
y=a[3]+a[x]; //a[3]+a[5] in this case,i get a[8],and value for that index is 9
a[8]
是如果你做了a[3+x]
你会得到的,而不是a[3]+a[x]
a[3]
是4
,a[x]
是a[5]
是5
,所以a[3]+a[x]
=4+5=9
这是不正确的:
y=a[3]+a[x]; //a[3]+a[5] in this case,i get a[8],and value for that index is 9
a[8]
是如果你做了a[3+x]
你会得到的,而不是a[3]+a[x]
a[3]
是4
,a[x]
是a[5]
是5
,所以a[3]+a[x]
=4+5=9
“在这种情况下,我得到了一个[8],该索引的值是9”-好的,你是怎么想到这些的?”在我的编辑器中,结果是6,9,5”-一个编辑器不执行C代码。你的具体问题是什么?哪一个操作符不清楚,而且无法通过简单的搜索找到?@Olaf他可能使用了像visualstudio这样的集成IDE,所以编辑器执行代码。a[3]+a[x]
与a[3+x]
@Barmar:即使这样,编辑器也不会执行代码。a[3]+a[5]在这种情况下,我得到了一个[8],该索引的值是9”-好的,你是怎么想到这些的?“在我的编辑器中,结果是6,9,5”-编辑器不执行C代码。你的具体问题是什么?哪一个操作符不清楚,通过简单的搜索无法找到?@Olaf他可能正在使用一个集成的IDE,比如Visual Studio,所以编辑器执行代码。a[3]+a[x]
与a[3+x]
@Barmar:即使这样,编辑器也不会执行代码。非常感谢,现在我看到了差异,非常感谢,现在我看到了你帮助我的不同之处,我认为要添加数组之外的内容,但这是不可能的,也许是可能的,但这将是一些未定义的内容,谢谢lot@MarkOn1很高兴帮助。。。!你们帮了我的忙,我以为要添加数组之外的东西,但这是不可能的,也许是可能的,但那将是一些未定义的东西,谢谢大家lot@MarkOn1很高兴帮助。。。!