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

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

怎么说呢。\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个字节。

有不对的地方还请大虾指正。

得四字节是因为你在打开文件的时候没有用二进制方式
fp1=fopen("C:/a.txt","w");这样你回车就是两个字节
把"w"改成"wb"看看。

\r回车
\n换行
ASCLL码每个字符就是一个字节,因为8位256个组合可以表示所有的ASCLL字符。这个是约定,没有什么原理的。

1 byte 因为他是一个字符,前面有个\ 只是一种表示方法;比如'\362‘是 一个八进制整数是同一道理,\’表示字符 ’,为了区别而已

#include <stdio.h>
void main()
{