一个c++问题,指针数组。请问输出每个字符串时用的为什么不是*name[i]而是name[i]?

如题所述

name[i]是字符串的首地址,而
cout<<name[i];就是通过字符串的首地址输出字符串。
*name[i]相当于*(name[i]),通过这个首地址取内容,是这个字符串的第一个字符,也就是说,
cout<<*name[i];是输出一个字符。追问

那这里的*name[5]可以看成是一个逻辑上的二维数组吗?

追答

char *name[5]按照书上的初始化后,就是个二维字符数组,只不过每一行的长度不同。而
char name[5][100];是定长的,就是100

温馨提示:答案为网友推荐,仅供参考
相似回答