《C语言 — 字符串数组和字符串指针数组的区别》
1.字符串数据
字符数组初始化:
char a[10] ="hello"; //字符串以'\0'结尾,这种方式系统会自动在数组未填值的地方添加'\0' char b[] = {'h', 'e' , 'l', 'l', '\0'}; //类似于初始化整型数组,必须要手动在后面添加'\0'
通过sizeof计算字符串数据长度
char c[] = “hello”; //没有字符串大小的限制 char d[5] = "hello" //限制了字符串的大小
通过sizeof(c)和sizeof(d),得出的结果分别为6跟5。因为sizeof(c)计算了NULL字节。
因此在使用字符串数据的时候尽量要把大小要大点,或者不设置字符串大小限制。
2.字符串指针数组和字符串数组的区别
char a[] = "hello"; //字符串数组,存放的是字符 char *b[] = {"hello", "world"}; //字符串指针数组,存放的是指针即元素地址,指针指向其中的元素