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

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

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

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

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

此处正确的输出为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()函数时确保转换说明(占位符)的数量与待打印的值的数量相等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值