首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这段代码的输出是4?

为什么这段代码的输出是4?
EN

Stack Overflow用户
提问于 2016-02-05 21:03:40
回答 3查看 41关注 0票数 0

我正在使用量值函数来计算字符串的大小。它应该印2,但为什么是4?这是密码。

代码语言:javascript
运行
复制
#include <stdio.h>
#include <string.h>

void main()
{       
    char *b = "ab";

    printf(" %d ",sizeof(b));
   //printf("%s ",b);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-05 21:04:46

因为在您的平台上,指针是4个字节。或者32位如果你愿意的话。

备注:使用void main()作为main()的签名表明您正在从一本老书中学习C,请小心!

票数 1
EN

Stack Overflow用户

发布于 2016-02-05 21:05:47

sizeof是关键字,而不是函数,它告诉您变量的大小(以字节为单位)。变量b是一个指针,它的大小(在您的系统上)是4个字节。如果想要字符串的长度,请使用strlen函数。

票数 1
EN

Stack Overflow用户

发布于 2016-02-05 21:12:23

代码语言:javascript
运行
复制
char *b = "ab";

在您的示例中,b是指向文件中只读字符串文字的指针.在您的情况下,指针在系统中的大小为4。

如果您想找出lenght,您可以使用strlen()这样做。

Sizeof返回传递给它的变量的大小(以字节为单位)。

有趣的事实:你甚至可以打印指针!

代码语言:javascript
运行
复制
printf("%p\n",b);

输出的一个例子是:

0x8048555

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35233462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档