初学C语言
这里printf("%d\n,sizeof(long)");
和printf("%d\n",sizeof(long));
下面的内容我明白,上面的话可以正常执行,执行后弹出来一串随机数字以及,printf("%d\n,sizeof(long)");
想知道什么原理,谢谢了。
关于#c语言#的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- 小周不想卷 2023-08-10 10:27关注
第一个printf函数调用的格式化字符串是"%d ,sizeof(long)"。其中"%d"是一个占位符,表示将要输出的是一个整数。" "是一个转义字符,表示换行。",sizeof(long)"是一个普通的字符串,其中的sizeof(long)是一个C语言的运算符,用于获取long类型的字节大小。
这个printf函数调用的结果是输出字符串"%d ,sizeof(long)",而不是你期望的输出具体的值和long类型的字节大小。这是因为printf函数会将格式化字符串中的占位符和后面的参数进行匹配,并将匹配到的参数替换到对应的占位符位置上。但是在这个例子中,占位符后面紧跟着的是一个逗号,而不是一个具体的参数。因此,printf函数会将整个",sizeof(long)"字符串作为一个参数进行输出,而不会将sizeof(long)的结果替换到占位符"%d"的位置。
第二个printf函数调用的格式化字符串是"%d ",其中"%d"仍然是一个占位符,表示将要输出的是一个整数。而后面的sizeof(long)是一个表达式,用于求取long类型的字节大小。在这个printf函数调用中,sizeof(long)的结果会被计算出来,并替换到占位符"%d"的位置上,最终输出long类型的字节大小。
因此,第一个printf函数调用输出的是字符串"%d ,sizeof(long)",而第二个printf函数调用输出的是具体的long类型的字节大小。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 halcon23.11安装
- ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
- ¥20 OPENVPN连接问题
- ¥15 flask实现搜索框访问数据库
- ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
- ¥100 如何用js写一个游戏云存档
- ¥15 ansys fluent计算闪退
- ¥15 有关wireshark抓包的问题
- ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
- ¥15 向数据表用newid方式插入GUID问题