ziqiyang 发表于 2018-9-8 11:07:21

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

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

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

int main()
{
      printf("\\n占%d个字节\n",sizeof(\n));
      return 0;
}这个提示表达式错误
#includ<stdio.h>

int main()
{
      printf("'\\n'占%d个字节\n",sizeof('\n'));
      return 0;
}这个提示语法错误

人造人 发表于 2018-9-8 11:46:36

#include <stdio.h>

int main(void)
{
        printf("'\\n'占%d个字节\n", sizeof('\n'));
        return 0;
}

ziqiyang 发表于 2018-9-8 12:00:13

本帖最后由 ziqiyang 于 2018-9-8 12:18 编辑

int main(void)这句是啥意思啊
我加了   还是提示错误啊{:5_100:}

claws0n 发表于 2018-9-8 12:01:36

#include<stdio.h>

shaungzhi20 发表于 2018-9-8 12:51:51

#includ少了个3

shaungzhi20 发表于 2018-9-8 12:52:34

打错了,includ少了个e

gpf谦默 发表于 2018-9-8 15:23:41

#include <stdio.h>
int main()
{
        printf("%d",sizeof("\n"));
return 0;
}

ziqiyang 发表于 2018-9-9 16:31:55

gpf谦默 发表于 2018-9-8 15:23
#include
int main()
{


老大   我这里为啥现实的是占2个字节啊   答案是占1个字节啊

gpf谦默 发表于 2018-9-10 10:45:16

ziqiyang 发表于 2018-9-9 16:31
老大   我这里为啥现实的是占2个字节啊   答案是占1个字节啊

这样测得话是把它当做字符串来测得字符串的结束标志是/0   其实在输出语句中 \n代表换行\ 代表的是转义字符

ziqiyang 发表于 2018-9-10 11:12:31

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

“其实在输出语句中 \n代表换行\ 代表的是转义字符",这个只需要理解,转义字符能用sizeof运算符计算占几个字节码?
原题是: 在 C 语言中,转义字符 '\n' 占多大空间?

gpf谦默 发表于 2018-9-10 11:34:54

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

那肯定是一个字节啦

ziqiyang 发表于 2018-9-10 12:38:21

gpf谦默 发表于 2018-9-10 11:34
那肯定是一个字节啦

老大如题目,这个用sizeof运算符怎么写才对呢,求给个标准程序写法。

gpf谦默 发表于 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;
}

gpf谦默 发表于 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="123456"用strlen(str)测得结果是6   而 sizeof(str)测试的结果则是20 因为测的是实际申请占用的空间

gpf谦默 发表于 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;
}
页: [1]
查看完整版本: sle6课后题'\n'占几个字节 不能用sizeof来看占几个字节吗?