在C语言中,字符串可以被赋值给字符数组或者字符指针。
字符数组是一个固定长度的字符序列,可以通过直接赋值或通过strcpy()函数来赋值给字符串。
例如:
char str1[10] = "Hello";
char str2[10];
strcpy(str2, str1);
在这个例子中,str1是一个字符数组,可以直接赋值为 “Hello”。str2也是一个字符数组,通过strcpy()函数将str1的值复制给str2。
字符指针可以指向字符串的起始位置,可以通过直接赋值或者通过strcpy()函数来赋值给字符串。
例如:
char *str1 = "Hello";
char *str2;
str2 = str1;
在这个例子中,str1是一个字符指针,可以直接赋值为指向字符串 “Hello” 的地址。str2也是一个字符指针,将str1的值赋给str2。
需要注意的是,当使用字符指针赋值时,是将指针指向字符串的起始位置,而不是将字符串的内容复制给指针。因此,在修改str2的值时,可能会影响到str1指向的字符串。如果需要在字符指针之间进行字符串复制,同样可以使用strcpy()函数。
总结起来,C语言中字符串的赋值规则主要是通过直接赋值或strcpy()函数来将字符串的内容赋值给字符数组或字符指针。