指针数组
指针数组,首先是一个数组无论几维,其次是里面元素为某一类型指针。最常见的就是char型指针数组,因为作为数组元素的char型指针可以用来保存字符串。初始化时只要写入数个字符串就能够使用。而其他类型的指针数组比如int型,容易在使用时候不对数组进行初始化。
因为平常int型数组如果没有初始化仍然可以访问元素,并且赋值,比如a[1]=1;如果我试图访问指针数组*a[1]=1;将a[1]所指向的值赋值为 1 ,虽然不会报错,但是不允许的。因为没有给这个指针分配内存空间,程序不知道给哪块地址里面的值变为1。
字符型也需要初始化分配空间,只不过在输入字符常量时就已经被分配到静态区了,如果存放的是其他用数组保存的字符串,那么仍然需要通过代码来让指针数组里面的指针指向目标内存。
编译系统只会为数组里面的元素开辟空间,是指针数组,就为里面的所有指针开辟空间,而如果不对里面的指针初始化形成野指针,就无法直接通过访问指针来间接访问想要写入或读取的值。