c语言字符串怎么动态创建,C语言中字符串的创建 - osc_anof00rm的个人空间 - OSCHINA - 中文开源技术交流社区...

在C中创建字符串的方法有两种,即通过指针创建或通过数组创建。

通过指针创建

创建语句:

1 char *str = "abc";

这句代码首先创建一个指针,再将字符串赋值给指针,其实这句代码可以写为两句,即:

1 char *str;2 str = "abc";

为什么第2句代码可以成立,可以这样来解释,在C语言中赋值符号两边的数据类型必须一致才不会报错。这样看来,str和“abc”都为指针类型,查阅资料后了解到确实如此。原因在于双引号做了如下工作:

1. 申请空间(在常量区),存放字符串;

2. 在字符串末尾添加字符结束符“\0”;

3. 以指针形式返回地址。

根据第3点语句2中等号右边的“abc”返回的是一个指针类型的变量。我们来测试一下程序的结果如何,测试代码如下:

1 voidmain()2 {3 char *str;4 str = "abc";5 printf("%s",str);6 getchar();7 }

结果如下:

40fa7208c1929ac257ca8c585101b05a.png

测试工具为vc++6.0

通过数组创建

创建语句,以下两个语句都可以创建字符串,需要注意的是用双引号表示的字符串后面还有一个隐藏的字符结束符“\0”,所以1中的字符长度应该笔你实际看到的要多1。

创建方法1 char *str[4] = "abc";

创建方法2 char str[4] = {'a','b','c','\0'};

针对创建方法1的测试代码:

1 voidmain()2 {3 char str[4] = "abc";4 printf("%s",str);5 getchar();6 }

针对创建方法2的测试代码

voidmain()

{char str[4] = {'a','b','c','\0'};

printf("%s",str);

getchar();

}

测试结果如下,都是一样的:

4094175586ee75e27fb70b293801c27c.png

测试工具为vc++6.0

以上就是C语言中字符串的创建方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值