鱼C论坛

 找回密码
 立即注册
查看: 2608|回复: 14

[已解决]sle6课后题'\n'占几个字节 不能用sizeof来看占几个字节吗?

[复制链接]
发表于 2018-9-8 11:07:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ziqiyang 于 2018-9-8 11:33 编辑

'\n'占几个字节   不能用sizeof来看占几个字节吗?应该如何编写,自己试了几次,总是提示语法错误或者表达式错误。我感觉我还是哪里的定义没弄明白,求指导。
  1. #includ<stdio.h>

  2. int main()
  3. {
  4.       printf("\\n占%d个字节\n",sizeof(\n));
  5.       return 0;
  6. }
复制代码
这个提示表达式错误
  1. #includ<stdio.h>

  2. int main()
  3. {
  4.       printf("'\\n'占%d个字节\n",sizeof('\n'));
  5.       return 0;
  6. }
复制代码
这个提示语法错误
最佳答案
2018-9-10 10:45:16
ziqiyang 发表于 2018-9-9 16:31
老大   我这里为啥现实的是占2个字节啊   答案是占1个字节啊

这样测得话  是把它当做字符串来测得  字符串的结束标志是/0   其实在输出语句中 \n  代表换行  \ 代表的是转义字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-8 11:46:36 | 显示全部楼层
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         printf("'\\n'占%d个字节\n", sizeof('\n'));
  5.         return 0;
  6. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-8 12:00:13 | 显示全部楼层
本帖最后由 ziqiyang 于 2018-9-8 12:18 编辑

int main(void)这句是啥意思啊
我加了   还是提示错误啊
屏幕快照 2018-09-08 下午12.00.45.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-8 12:01:36 | 显示全部楼层
#include<stdio.h>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-8 12:51:51 From FishC Mobile | 显示全部楼层
#includ少了个3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-8 12:52:34 From FishC Mobile | 显示全部楼层
打错了,includ少了个e
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-8 15:23:41 | 显示全部楼层
#include <stdio.h>
int main()
{
        printf("%d",sizeof("\n"));
return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-9 16:31:55 | 显示全部楼层

老大   我这里为啥现实的是占2个字节啊   答案是占1个字节啊
屏幕快照 2018-09-09 下午4.27.54.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-10 10:45:16 | 显示全部楼层    本楼为最佳答案   
ziqiyang 发表于 2018-9-9 16:31
老大   我这里为啥现实的是占2个字节啊   答案是占1个字节啊

这样测得话  是把它当做字符串来测得  字符串的结束标志是/0   其实在输出语句中 \n  代表换行  \ 代表的是转义字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-10 11:12:31 | 显示全部楼层
gpf谦默 发表于 2018-9-10 10:45
这样测得话  是把它当做字符串来测得  字符串的结束标志是/0   其实在输出语句中 \n  代表换行  \ 代表的 ...

“其实在输出语句中 \n  代表换行  \ 代表的是转义字符",这个只需要理解,转义字符能用sizeof运算符计算占几个字节码?
原题是: 在 C 语言中,转义字符 '\n' 占多大空间?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-10 11:34:54 | 显示全部楼层
ziqiyang 发表于 2018-9-10 11:12
“其实在输出语句中 \n  代表换行  \ 代表的是转义字符",这个只需要理解,转义字符能用sizeof运算符计算 ...

那肯定是一个字节啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-10 12:38:21 | 显示全部楼层
gpf谦默 发表于 2018-9-10 11:34
那肯定是一个字节啦

老大  如题目,这个用sizeof运算符怎么写才对呢,求给个标准程序写法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-10 14:30:23 | 显示全部楼层
ziqiyang 发表于 2018-9-10 12:38
老大  如题目,这个用sizeof运算符怎么写才对呢,求给个标准程序写法。

你好  你可以用strlen()这个函数去测"\n"占用的实际字节  
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
        printf("%d",strlen("\n"));
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-10 14:41:55 | 显示全部楼层
ziqiyang 发表于 2018-9-10 12:38
老大  如题目,这个用sizeof运算符怎么写才对呢,求给个标准程序写法。

补充一下    strlen()(测字符串占用的实际空间)   sizeof() 测占用空间大小包含\0  
在程序中用sizeof("\n")  的结果为2  其原因是  \n  占一个字节   \0  占一个字节  他把"\n"作为字符串处理
会在末尾自动添加\0(字符串结束标志)   而用strlen("\n")  的结果是2  其原因是 strlen()  测得是实际长度,不包括\0    举个例子吧   char str[20]="123456"  用strlen(str)测得结果是6   而 sizeof(str)测试的结果则是20 因为测的是实际申请占用的空间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-9-10 16:44:55 | 显示全部楼层
gpf谦默 发表于 2018-9-10 14:41
补充一下    strlen()(测字符串占用的实际空间)   sizeof() 测占用空间大小包含\0  
在程序中用sizeof(" ...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
        printf("%d",sizeof('\n'));
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 20:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表