鱼C论坛

 找回密码
 立即注册
查看: 1550|回复: 5

[已解决]在测量实型变量这种情况下,为什么加双引号和不加双引号的结果是不同的?

[复制链接]
发表于 2018-7-31 12:31:58 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>

int main ()
{
        printf("%i",sizeof(double));
}



#include <stdio.h>

int main ()
{
        printf("%i",“sizeof(double)”);
}



最佳答案
2018-7-31 15:20:47
本帖最后由 关键是感觉 于 2018-7-31 15:24 编辑

假设内存空间
2.png
#include <stdio.h>

int main ()
{
        char * s;
    printf("%d\n",s="sizeof(double)");  
        printf("%s",s);
}

打印"sizeof(double)"其实就是给printf传入一个地址,你用%i解析这个地址,那么就输出这个地址值
sizeof(double)不一样 他传入是一个值,所以输出的是一个值。当然你也可以用其他格式字符去解析,但是报错是应该
int main (){
        char * s="abcdef";    
        printf("%c",*(s+sizeof(int)));
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-7-31 12:35:42 | 显示全部楼层
第二个代码中"sizeof(double)"    的英文双引号打不出来,所以我用中文的双引号代替
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 13:11:54 | 显示全部楼层
sizeof是一个运算符,并不是函数,其作用就是返回一个对象或者类型所占的内存字节数。
sizeof(double) 是一个整型表达式,注意是表达式,就是计算double在系统中占几个字节,一般是8,返回的是一个整型
SO.加字符串只不过是把结果转成字符串的8而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 15:17:03 | 显示全部楼层
输出sizeof(double)就是输出double的大小。
输出"sizeof(double)"就是"sizeof(double)"这个字符串中第一个字符在内存中的地址。
PS:建议楼主用%d代替%i,%i是老式写法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 15:20:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 关键是感觉 于 2018-7-31 15:24 编辑

假设内存空间
2.png
#include <stdio.h>

int main ()
{
        char * s;
    printf("%d\n",s="sizeof(double)");  
        printf("%s",s);
}

打印"sizeof(double)"其实就是给printf传入一个地址,你用%i解析这个地址,那么就输出这个地址值
sizeof(double)不一样 他传入是一个值,所以输出的是一个值。当然你也可以用其他格式字符去解析,但是报错是应该
int main (){
        char * s="abcdef";    
        printf("%c",*(s+sizeof(int)));
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-31 22:35:03 | 显示全部楼层
无符号整形 发表于 2018-7-31 15:17
输出sizeof(double)就是输出double的大小。
输出"sizeof(double)"就是"sizeof(double)"这个字符串中第一个 ...

哦(⊙o⊙)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-30 04:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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