指针数组定义位置问题
先上代码void main()
{
int *a ;
int *b ;
int *c ;
int *d ;
int *e ;
int h = 7;
int *num = {a, b, c, d, e};//err-------- 位置1
int i;
a = &h;
b = &h;
c = &h;
d = &h;
e = &h;
//int *num = {a, b, c, d, e};//ok ------- 位置 2
for(i = 0; i< 5; i++)
{
printf("%d\n", *num);
}
}
当对指针数组在位置1进行定义时, 输出啥也没有,
而在位置2定义时,则可以正常输出都是7.
我认为指针数组内的元素都是指针,也就是地址,
在位置1处定义时,指针abcde的指向的位置是都没有的,
但是位置1下面也对这几个指针进行位置的赋值,
按说数组num中元素的也就可以确定了,
可为啥输出来还是啥都没有了?
求大神解释!
存的是地址呀 ,又不是这些指针变量
你初始化只是把值赋给这个数组
万千只cnm 发表于 2021-6-20 20:27
存的是地址呀 ,又不是这些指针变量
你初始化只是把值赋给这个数组
后面我不是把指针指向了确切的地址嘛,为啥还是不行了,a= &h这个,谢谢大神回复 小木刺客 发表于 2021-6-20 23:53
后面我不是把指针指向了确切的地址嘛,为啥还是不行了,a= &h这个,谢谢大神回复
对啊指针变量a的值变了
指针数组里面存的是地址,不是变量呀
int *num = {a, b, c, d, e};
初始化只是把对应地值(地址)拷贝过去了 ,并不是把这些变量存进去了 小木刺客 发表于 2021-6-20 23:53
后面我不是把指针指向了确切的地址嘛,为啥还是不行了,a= &h这个,谢谢大神回复
就像整型数组
int a;
for(int i = 0;i<10;i++)
a=i;
循环赋值
再让i=1000000000;
难道i变了 a数组元素值会变吗? 把指针赋值提前
页:
[1]