第3个回答 2020-08-10
数组不论是什么样的,多维数组、指针数组等,在内存中都是线性排列的。char类型数组的单元都是按照char的大小划分的,即1字节。在内存中*ps[]为'a' 'a' '/0' 'b' 'b' '/0' ……,其中'/0'为字符串结束符。
*ps[]可以理解为一个指向ps[]数组的指针。*ps[0]为指向ps[0]的一个指针,ps[0]即ps的第一个元素是'a',1字节字符。
#include <stdio.h>
int main()
{
char *ps[] = {"aa","bb","cc","dd"};
printf ("%c\n",*ps[0]); //按字符输出
printf ("%s\n",*ps[0]); //按字符串输出
printf ("%c\n",'a');
printf ("%s\n",'a');
return 0;
}
输出结果:
a
97
a
97