C语言指针数组与二维数组行指针小问题

如题所述

第1个回答  2020-03-21
指针数组:该数组中存放的全部都是指针,例如:
原例子中的char
*name[],这个是一个标准透了的一维数组,就像是数组
int
a[4];
a[1]=2;
a[2]=3;
不同的是数组name存放的是指针,数组a存放的是数字
name[1]=name[2]表示的是把name[2]的指针赋值给name[1]就不难理解了。
二维数组的行名:
LZ假设的数组char
name[5][20]是一个二维数组,行名name[1]表示的是一个指向字符串的指针没问题吧,这个指针中存放的是一个字符串,或者说是一个字符数组,如果说上例子要改为二维数组的形式,那么需要进行strcpy的字符串拷贝。
总结:
总的来说:指针数组中的name[1]表示的是一个变量,这个变量中存放的是指针,二维数组的name[1]表示的是一个指针,指向字符串的指针。如果LZ还不明白变量和指针的区别,我也没办法解释了。
相似回答