×

数组指针初始化 初始化 指针数组

C指针数组的初始化?数组指针的初始化问题

admin admin 发表于2022-07-18 20:20:59 浏览118 评论0

抢沙发发表评论

C指针数组的初始化你声明的是一个float类型的指针数组ranges也就是说数组的每个元素都是指向float 类型变量的指针,再用这些指针变量给指针数组 ranges 赋初值,正确的赋值方法,就是将数组指针的首元素地址给指针数组中的一个指针),只有声明几个float类型的指针变量,我在这里定义了一个指针组并分配了它,0是正确的,声明指针C被声明。

C指针数组的初始化


你声明的是一个float类型的指针数组ranges
也就是说数组的每个元素都是指向float 类型变量的指针,你直接用数值360去赋初值,肯定是错的,0是正确的,因为它把0当成了空指针NULL来处理。
正确的赋值方法,只有声明几个float类型的指针变量,再用这些指针变量给指针数组 ranges 赋初值。
比如:
float a,b,c;
float *ranges={&a,&b,&c};

数组指针的初始化问题


没有太明白您的问题
char (*p)是一个数组指针,限定了每一维的数组长度为4.那么:
char a;
char b;
都可以有:
p = a;
p = b;
--------------------------
另外如果数组的m,n都不确定,也可以这样:
int m,n;
scanf(“%d %d“, &m, &n);
char **p;
p = (char **) malloc(sizeof(char*) * m);
for(int i = 0; i 《 m; i++)
p = (char *) malloc(sizeof(char) *n);

C语言可以用指针数组赋值给数组指针吗

我这里有C++环境,帮你试了一下不行(当然,也有变相的方法,就是将数组指针的首元素地址给指针数组中的一个指针),估计C差不多。

参考图:

两者的类型系统认为它是不同的。

我在这里定义了一个指针组并分配了它。声明指针C被声明,分配时图片中有一个提示

如果要分配和使用它,则可以参考图片。可以通过结果可以看出它是正确的