[C.C++] C Primer Plus-C语言基本数据类型-有关int值的打印

495 0
Honkers 2025-5-14 23:59:08 来自手机 | 显示全部楼层 |阅读模式

本文对于C primer plus中有关int值打印相关内容以及代码做了一些转载以及赘述。

我们在C语言程序中可以使用printf()函数来打印一些我们所需要的值,例如我们熟知的int类型的值,%d这个占位符的含义是”转换说明“,它指定了printf()以什么样的形式来输出显示一个值。格式化字符串中的每一个%d都与待打印的变量列表中相对应的int值相匹配。

我们在编写程序时要注意转换说明的数量和待打印的值数量相等,编译器并不会发现这些错误,输出在下列代码printfInt.c中演示了printf()的一些特性,包括正确的编写和出现一些小错误会产生什么样的结果。

  1. /*printInt.c-演示printf()函数的一些特性*/
  2. #include<stdio.h>
  3. int main(void)
  4. {
  5. int ten = 10;
  6. int two = 2;
  7. printf("计算两数差值:\n");
  8. printf("Doing it right:");
  9. printf("%d minus %d is %d\n", ten, 2, ten - two); //三个占位符对应三个参数
  10. printf("Doing it wrong:");
  11. printf("%d minus %d is %d\n", ten); //遗漏两个参数
  12. return 0;
  13. }
复制代码

此处正确的输出为10 minus 2 is 8,不难看出表达的含义是简单的四则预算10-2=8,在第一列输出中第1个%d的是int类型变量ten,第二个%d代表的是int类型常量2,第三个%d代表的是int类型表达式ten-two的值。而在第二行输出中,第一个%d仍与第一行的作用相同,而之后的两个转换说明并没有变量给其提供任何的数值,所以在程序实际运行过程中,输出的结果为存储在内存中的任意值。

此处发生此类的问题的关键因素在于printf()的参数不确定,可能有1,2,3,或者多个,编译器无法识别出对应的参数是否已经一 一对应。所以程序员需要在使用printf()函数时确保转换说明(占位符)的数量与待打印的值的数量相等。

本帖子中包含更多资源

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

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

本版积分规则

Honkers

荣誉红客

关注
  • 4013
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行