C语言中字符串的创建
在C中创建字符串的方法有两种,即通过指针创建或通过数组创建。
通过指针创建
创建语句:
1 char *str = "abc";
这句代码首先创建一个指针,再将字符串赋值给指针,其实这句代码可以写为两句,即:
1 char *str; 2 str = "abc";
为什么第2句代码可以成立,可以这样来解释,在C语言中赋值符号两边的数据类型必须一致才不会报错。这样看来,str和“abc”都为指针类型,查阅资料后了解到确实如此。原因在于双引号做了如下工作:
1. 申请空间(在常量区),存放字符串;
2. 在字符串末尾添加字符结束符“\0”;
3. 以指针形式返回地址。
根据第3点语句2中等号右边的“abc”返回的是一个指针类型的变量。我们来测试一下程序的结果如何,测试代码如下:
1 void main() 2 { 3 char *str; 4 str = "abc"; 5 printf("%s",str); 6 getchar(); 7 }
结果如下:
测试工具为vc++6.0
通过数组创建
创建语句,以下两个语句都可以创建字符串,需要注意的是用双引号表示的字符串后面还有一个隐藏的字符结束符“\0”,所以1中的字符长度应该笔你实际看到的要多1。
创建方法1 char *str[4] = "abc";
创建方法2 char str[4] = {'a','b','c','\0'};
针对创建方法1的测试代码:
1 void main() 2 { 3 char str[4] = "abc"; 4 printf("%s",str); 5 getchar(); 6 }
针对创建方法2的测试代码
void main() { char str[4] = {'a','b','c','\0'}; printf("%s",str); getchar(); }
测试结果如下,都是一样的:
测试工具为vc++6.0
以上就是C语言中字符串的创建方式。