黑马程序员技术交流社区

标题: 关于指针字符串与字符串数组的区别 [打印本页]

作者: Jack-xie    时间: 2014-9-30 11:17
标题: 关于指针字符串与字符串数组的区别
问题:char *str1 = "boy";
            char str2[5] = "girl";

请问他们之间在取值、打印方面有哪些具体的区别呢?
作者: songxing10000    时间: 2014-9-30 11:41
本帖最后由 songxing10000 于 2014-9-30 11:43 编辑

打了那么多,居然乱码,少了好多东西,
[size=14.3999996185303px][size=14.3999996185303px]

关于 请问他们之间在取值、打印方面有哪些具体的区别呢?
[size=14.3999996185303px]个人理解(由于在win7下面,未能测试,纯想象,有错请指出,共同学习进步):
[size=14.3999996185303px]一、取值(初始化,再赋值):
  1. //1、初始化
复制代码
二、打印
[size=14.3999996185303px]
  1. //打印char *str1 = "boy";
  2. char *str1 = "boy"; //%s即可

复制代码

好像是差不多了,本来应该测试再发出结果的,但是win7上未能测试,,,有错,请各们指出

作者: ch8898163    时间: 2014-9-30 18:44
char *str1 = "boy";表示指针指向‘b’的地址开始读取吧,然后 char str2[5] = "girl";是说明字符串数组容量5,读取‘g’,'i','r','l','\0'.
作者: cp1454298677    时间: 2014-10-1 19:14
str1  实际是保存 “boy"   字符串的 首地址。 而 石头人  
作者: cp1454298677    时间: 2014-10-1 19:25
str1  实际 上 是 保存”boy“ 首地址 的变量 。 而 str2  是 保存 数组str【2】 的首地址的常量。 而 对于 取值 都可以使用【】 * 运算符,并且c语言 不检查数组越界。也就是在取值上,,打印上 是没有什么 本质的区别的。  
作者: alpha.huai    时间: 2014-10-1 22:07
指针用时,最好malloc。用完free




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2