黑马程序员技术交流社区

标题: 关于char类型的一丝疑惑。 [打印本页]

作者: 4B青年    时间: 2015-7-2 18:39
标题: 关于char类型的一丝疑惑。
本帖最后由 4B青年 于 2015-7-11 20:55 编辑
  1. int result;
  2. result = sizeof('a');
  3. printf("%d",result);//打印出结果会是4,为什么不是1?什么情况下会打印1?
复制代码

3_11、sizeof运算符-补1_201572183328.JPG (208.07 KB, 下载次数: 154)

3_11、sizeof运算符-补1_201572183328.JPG

作者: 4B青年    时间: 2015-7-2 18:40
本帖最后由 4B青年 于 2015-7-2 18:52 编辑

能不能写个例子或画个内存图说明一下,文字看的挺绕的
作者: mazhichao    时间: 2015-7-2 18:58
你要是想打印一个字符所占字节,你首先要定义个字符,你这里写的result = sizeof('a')这句话等同于result = sizeof(96);,它是将‘a’转化为了ascii中对应的值了。
作者: 痛并快乐着    时间: 2015-7-3 21:30
字符常量占4个字节,字符变量占一个字节
作者: 4B青年    时间: 2015-7-3 22:45
痛并快乐着 发表于 2015-7-3 21:30
字符常量占4个字节,字符变量占一个字节

虽然还是没搞懂原理,这也是一个知识点,感谢!
作者: 18678927239    时间: 2015-7-3 23:10
好好区分字符常量跟字符变量
作者: 4B青年    时间: 2015-7-4 11:25
18678927239 发表于 2015-7-3 23:10
好好区分字符常量跟字符变量

能否通过指针变量通过打印地址的方式,将字符常量和字符变量在内存中存在的状况表现出来?
作者: 丁铭检    时间: 2015-7-4 12:57
学习了。。。
作者: 18678927239    时间: 2015-7-4 22:47
4B青年 发表于 2015-7-4 11:25
能否通过指针变量通过打印地址的方式,将字符常量和字符变量在内存中存在的状况表现出来? ...

可以 建个 target 试验一下吧
作者: timehzy    时间: 2015-7-4 23:59
楼主没搞清楚字符变量和字符常量。字符常量占4字节,变量占1字节
作者: Chasel    时间: 2015-7-5 07:46
字符常量占4个字节,字符变量占一个字节
作者: 寂静的夜    时间: 2015-7-5 07:49
只知道   char 占一个字节




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