数组的所有指针成员都可以指向同一个变量吗?
例如:当*a[i]
指向值为C
的变量5
并且数组的长度为3
时会发生什么? a[0],a[1],a[2]
是否具有值5
?
答案 0 :(得分:0)
是的,基于this answer
如果所有指针都属于同一类型,则没有问题
int a = 10;
int *b[3];
b[0] = &a;
b[1] = &a;
b[2] = &a;
a = 5; // now b[0-2] are also equal 5.
答案 1 :(得分:0)
没有a [0],a [1],a [2]不会指向变量C,您必须明确地使其指向变量C。请考虑以下示例。
#include<stdio.h>
void main()
{
int *a[3];
int c=5;
a[0] = &c;
printf("%d %d %d", *a[0],*a[1],*a[2]);//this will print 5 junkvalue junkvalue
a[1] = &c;
a[2] = &c;
printf("%d %d %d", *a[0],*a[1],*a[2]);//this will print 5 5 5
}