1、字符串不能直接赋值给变量,只能通过拷贝的形式。
strcpy这个函数会自己添加末尾0,所以拷贝需要预留的空间
2、用字符对字符数组进行初始化:
产生的数组不会有结束符'/0',但数据量很大的时候,这种方法很繁重
char rat[5]={'H','E','L','L','O'};
3、用字符串常量对字符数组进行初始化:
这时字符数组当做字符串看待,产生的数组是需要添加'/0'
char panic[6]={"HELLO");
char panic[]="HELLO";
和char panic[6]={'H','E','L','L','O'};等价。
这个时候,字符数组的长度是6,但是字符串的长度仅仅是5,不计算'/0'
比如:char arr[]="Hello World!";
这种初始化方法不用担心数组大小过小的情况,数组的大小由编译器决定。
或者 char panic[6] = {'h','e','l','l','o','/0'};和 char panic[] = "hello",是一样的,但是要麻烦。' '表示空格,ASCII为32,'/0',ASCII为0
char *p = "hello";p可以自增,自减,数组名不能自增自减。 而且p所指的内存是常量区,不能改变。
4、char arr[10] = 'HI'
如果用printf()打印,遇到第一个
5、如果可以用结构体,就不要申请内存,使用指针申请内存比较麻烦
6、可以用宏来定义字符串,进行拷贝,测量等等操作
7、结构体使用之前,最好清零。注意双重指针,强转的用法。