C 使用指针变量指定数组元素值时,第三个数组元素不会打印出来
所以我在读一本关于C的书时,遇到了一段我不能完全理解的代码,所以我决定运行它,亲自看看结果。基本上,我理解数组变量的作用类似于指针,例如,它指向数组的第一个元素C 使用指针变量指定数组元素值时,第三个数组元素不会打印出来,c,arrays,pointers,C,Arrays,Pointers,所以我在读一本关于C的书时,遇到了一段我不能完全理解的代码,所以我决定运行它,亲自看看结果。基本上,我理解数组变量的作用类似于指针,例如,它指向数组的第一个元素 char quote[]="This is a nice cookie!" 这里的quote是一个数组变量,基本上是指向数组第一个元素的指针,即字母T(希望到目前为止我是正确的) 在此基础上,当我编写下面的代码时,我理解以下几点 在申报时,参赛者是一个包含3名成员的阵列-1、2和3 然后我使用*choice作为数组变量,换句话说,它是
char quote[]="This is a nice cookie!"
这里的quote是一个数组变量,基本上是指向数组第一个元素的指针,即字母T(希望到目前为止我是正确的)
在此基础上,当我编写下面的代码时,我理解以下几点
参赛者[2]
到目前为止,一切顺利。
现在,书中没有下一个for循环。我自己将其包含在代码中,以查看数组的元素。当我运行代码时,作为输出,我得到-
I will pick contestant number 2
The members of the array contestants are:
Member 0 has the value 2
Member 1 has the value 3
我的问题是-我不明白成员1如何具有值3。根据代码,成员1和2不应该都具有相同的值(2)
任何帮助都将不胜感激。
我正在使用Sublime文本和Mac终端来运行它(如果需要)
#包括
int main()
{
int contenstants[]={1,2,3};
int*choice=contenstants;
抗辩人[0]=2;
抗辩人[1]=抗辩人[2];
抗辩者[2]=*选择;
printf(“\n我将选择参赛者编号%I\n”,contenstants[2]);
//打印数组成员
printf(“数组上下文的成员是:\n”);
对于(int i=0;i它是3
,因为您正在
contenstants[1]=contenstants[2];
然后,contenstants[1]
以后不会修改,因此它具有值3
在评论中回答您的问题:
for循环中的条件不正确
--------------v not correct
for(int i=0;i<contenstants[2];i++)
------------v不正确
对于(int i=0;i它是3
,因为您正在
contenstants[1]=contenstants[2];
然后,contenstants[1]
以后不会修改,因此它具有值3
在评论中回答您的问题:
for循环中的条件不正确
--------------v not correct
for(int i=0;i<contenstants[2];i++)
------------v不正确
对于(int i=0;i
您得到的输出完全符合逻辑!
在第一步中,将值2赋给上下文[0]
,这也是*选项
在输出中只得到两个数字的原因是,您循环了(inti=0;i)的
您得到的输出完全符合逻辑!
在第一步中,将值2赋给上下文[0]
,这也是*选项
您在输出上只得到两个数字的原因是,您循环(int i=0;iOkay,谢谢!但是为什么for循环只打印2个成员-0和1。那么成员3呢?不应该也打印值2吗?对不起-我的错误。for循环应该有一个@DarkKnight我更新了答案,但是你是对的,或者使用好的,谢谢!但是为什么for循环只打印2个成员-0和1。什么about成员3?难道不应该用值2打印吗?很抱歉-我的错误。for循环应该有一个@DarkKnight我更新了答案,但是你是对的,或者使用我明白了,但是为什么for循环不打印我的所有数组成员?只打印带有值的成员1和2?非常感谢!我很抱歉-我的错误。fo我明白了,r循环应该有一个,但是为什么for循环不打印出我所有的数组成员呢?只打印带有值的成员1和2?非常感谢!对不起,我错了。for循环应该有一个
int contenstants[]={1,2,3};
int *choice=contenstants; // choice -> {1,2,3}
contenstants[0]= 2; // choice -> {2,2,3}
contenstants[1]=contenstants[2]; // choice -> {2,3,3}
contenstants[2]=*choice; // choice -> {2,3,2}