大家好,我是僵尸。
好久没有写c语言的代码了,最近要用到c语言,受了很多苦,记入一下关于字符串的操作。
void main()
{
char *str1="僵尸字符串指针";
char str2[]="僵尸字符串数组";
//str2 = "新的僵尸字符串数组";//错误,数组元素存放类型错误
str1 = "新的字符串指针";
printf("%s\n", str1);//输出:新的字符串指针
}
字符串有两种声明方式,第一种是字符串数组声明,第二种是用字符串指针声明。
重点来了:
如果使用字符串数组声明,那么字符串就不能随意更改;
而使用指针就可以;
原因就是,字符串数组的数组名是--首地址,而数组名这个指针指向首地址是不可以更改的,这就导致了字符串不能更改;
而字符串指针就可以更改其指向的地址,所以,我们可以通过将支付穿指针从一个字符串首地址,更改指向到另外一个字符串的首地址,就可以实现对字符串的更改。
还有一个小问题,
都知道 * 指针 是取指针指向地址的内容,那么* 字符串指针=“更改的字符串”;合不合法呢?
答案是,不行
错误是将字符串全部放到了指针变量中,而指针只能存储地址。