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

c数组解决方法

2012-09-08 
c数组#include stdio.hint main(void){int nVar1100,nVar2200,nVar3300int *Array[2]Array[0]&nVa

c数组
#include <stdio.h>
int main(void)
{ int nVar1=100,nVar2=200,nVar3=300;
  int *Array[2];
  Array[0]=&nVar1;
  Array[1]=&nVar2;
  Array[2]=&nVar3;
  printf("%d\n",**Array-1);
  return 0;
}

请问这里的Array[2]=&nVar3;怎么解释?

[解决办法]
把Var3这个变量的地址赋给Array这个指针数组的第三项。
[解决办法]
Array[2]=&nVar3; //错误


int *Array[2];你这样定义的指针数组,里面只有两个值。Array[2]这样取,越界!
[解决办法]
就如int *p = &nVar3;
这里的Array[2]相当与p,指针数组里面的每一个元素就是个单独的指针
[解决办法]
越界了吧
[解决办法]
定义的是指向整形的指针数组,那么数组中的每一项都应该是指向整形的指针,
但是nVar是整形变量,所以用&nVar来取得该变量的地址存到数组中。

[解决办法]
声明应该int *Array[3];
[解决办法]
敢问这个能通过吗?
[解决办法]
和前两个理解一样,只是越界
[解决办法]
数组越界~
[解决办法]

探讨
#include <stdio.h>
int main(void)
{ int nVar1=100,nVar2=200,nVar3=300;
int *Array[2];
Array[0]=&amp;nVar1;
Array[1]=&amp;nVar2;
Array[2]=&amp;nVar3;
printf("%d\n",**Array-1);
……

热点排行