请问C语言中,’\n’是占用几个字节的???

一般来说,一个字符在内存中只占1个字节,’\n’是转义字符,其意义是换行符,它作为一个字符存储,但在内存 中’\n’是占用几个字节的???
是1 byte 个? 还是 2 byte ??? 还是 ??
感觉是 1 byte 正确吗???
理由!!!
回复: czq241
多谢提醒!!!
回复: tanyuguo
\n 怎么会处理成 \n\r 呢?
\r 又是什么啊?????
把你的代码增加 .....fprintf(fp3,"abc\r");
得出c.txt 为 4字节 !!!

\n’是两个字节。

1、如果是char 型,那么是占用1个字节,8位。如果是string型,应该是两个字节,16位,因为末尾还有个\0字符。

比如:

char c = 'a';//它占用一个字符

char c[] = "a";//占用两个。

char c[] = "abcde";//占用4+1 = 5 个,结尾有一个'\0'

2、数字:

从小到大分别为:short、int、float、long、double。

字节为:1个、2个、4个、8个、8个

位数为:8位、16位、32位、64位、64位

3、汉字

一个汉字占用两个字节,16位。比如:中国,就占用4个字节,例如:
char c[] = "中国";//占用4+1 = 5个字符。

扩展资料

1、由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。

2、不指定 signed 或者 unsigned 的 char 类型,在C语言中是未定义的,若考虑不同的编译器,我们不能确定 char 类型到底是有符号的,还是无符号的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-24
怎么说呢。\n本身确实是一个字符。但是请看下面的程序
(运行环境WINDOWS XP+SP2+VC6)

#include "stdio.h"
void main()
{
FILE *fp1,*fp2;
fp1=fopen("C:/a.txt","w");
fp2=fopen("C:/b.txt","w");
fprintf(fp1,"abc");
fprintf(fp2,"abc\n");
fclose(fp1);
fclose(fp2);
}

运行此程序后,再打开“我的电脑”,进入C盘,分别查看a.txt和b.txt文件大小,你会发现分别是3字节和5字节。

我个人理解,\n虽然占1字节,但因为回车键实际上是输入了
\n和\r两个字符,而且好像Unix和Linux中就要求\n\r连用是吧?所以,某些编译器(比如VC),就会将\n处理成\n\r,变成了2个字节。

有不对的地方还请大虾指正。本回答被提问者采纳
第2个回答  2007-11-08
得四字节是因为你在打开文件的时候没有用二进制方式
fp1=fopen("C:/a.txt","w");这样你回车就是两个字节
把"w"改成"wb"看看。

\r回车
\n换行
ASCLL码每个字符就是一个字节,因为8位256个组合可以表示所有的ASCLL字符。这个是约定,没有什么原理的。
第3个回答  2020-01-07
char c = 'a';//它占用一个字节
字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。比如:0x01, 0x45, 0xFA。
字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*
第4个回答  2007-11-07
1 byte 因为他是一个字符,前面有个\ 只是一种表示方法;比如'\362‘是 一个八进制整数是同一道理,\’表示字符 ’,为了区别而已

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网