C语言中的格式化输出符号:%d %c %p %x等

概览

C语言中的格式化输出符号有很多,以下是一些常见的:

%d 或 %i:用于输出十进制整数。
%u:用于输出无符号十进制整数。
%f:用于输出浮点数。
%s:用于输出字符串。
%c:用于输出字符。
%p:用于输出指针。
%x 或 %X:用于输出十六进制数,%x表示输出小写字母,%X表示输出大写字母。
%o:用于输出八进制数。
%e 或 %E:用于输出科学计数法表示的浮点数。
%g 或 %G:用于输出浮点数,但是没有无意义的零。
这些格式化输出符号可以在printf函数的格式字符串中使用,用来指定输出的格式。

%d

%d是C语言中的格式化输出符号,用于将整数值按照十进制格式输出到标准输出流(通常是控制台)。它可以用于printf函数中的格式化字符串中,指示要输出的整数的位置和格式。例如,"%d"可以用来输出一个整数变量的值。

%c

%c是C语言中的格式化输出符号,用于输出字符。在printf函数中,%c可以用来输出一个字符变量的值。在你的代码中,如果你想打印出数组元素的字符表示,你可以使用%c。

#include <stdio.h>

int main() {
   
    unsigned char array[16];
    for (int i = 130; i < 146; i++)
    {
   
        array[i] = i;
        //打印数组的每个元素的地址和值
        printf("array[%d] address is %p, value is %c\n", i, &array[i], array[i]);
        
    }
    // 
    return 0;
}

printf("array[%d] address is %p, value is %c\n", i, &array[i], array[i]);

这将会打印出数组元素的字符表示,而不是整数值。
输出:

array[130] address is 000000000061FE82, value is é
array[131] address is 000000000061FE83, value is â
array[132] address is 000000000061FE84, value is ä
array[133] address is 000000000061FE85, value is à
array[134] address is 000000000061FE86, value is å
array[135] address is 000000000061FE87, value is ç
array[136] address is 000000000061FE88, value is ê
array[137] address is 000000000061FE89, value is ë
array[138] address is 000000000061FE8A, value is è
array[139] address is 000000000061FE8B, value is ï
array[140] address is 000000000061FE8C, value is î
array[141] address is 000000000061FE8D, value is ì
array[142] address is 000000000061FE8E, value is Ä
array[143] address is 000000000061FE8F, value is Å
array[144] address is 000000000061FE90, value is É
array[145] address is 000000000061FE91, value is æ

%d和%c的区别

在这里插入图片描述

%p

在C语言中,%p是一种格式化输出的转换说明符,用于打印指针变量的值。例如,下面的代码使用%p打印一个指向整数的指针变量p的值:

int num = 42;
int *p = &num;
printf("The value of p is %p\n", p);

输出为:

The value of p is 0x7ffee1d7e9ac

%p打印出的是指针变量p的十六进制地址。

%x %X

在C语言中,我们可以使用转换说明符 %x%X 来打印十六进制数。

%x 会将小写字母用于小于等于10的数字以及大写字母用于大于10的数字,而 %X 则全部使用大写字母。

下面是一个示例代码:

int num = 255;
printf("num in hex is %x\n", num);  // 输出 "num in hex is ff"
printf("num in HEX is %X\n", num);  // 输出 "num in HEX is FF"

%x%X 都只能用于输出 unsigned int 或者 unsigned long 类型的数据,如果使用 %x%X 输出其他类型的数据,将会导致未定义的行为。

输出浮点数

在C语言中,可以使用%f%e%g%E%G作为格式化输出符号来输出浮点数。

  • %f:按固定点表示法打印浮点数。
  • %e%E:按科学计数法打印浮点数。%e使用小写字母(例如,3.14159e+00),%E使用大写字母(例如,3.14159E+00)。
  • %g%G:根据值的大小,printf函数决定使用固定点表示法或科学计数法。%g使用小写字母,%G使用大写字母。

例如:

float num = 3.14159;
printf("The value of num is %f\n", num);
printf("The value of num is %e\n", num);
printf("The value of num is %g\n", num);

这将分别以固定点表示法,科学计数法和自动选择的方式打印出浮点数。

参考

《C Primer Plus》

相关推荐

  1. C语言格式化输入/输出

    2023-12-08 15:30:05       22 阅读
  2. C语言输入输出详解

    2023-12-08 15:30:05       38 阅读
  3. C语言snprintf():将格式化字符串输出到数组

    2023-12-08 15:30:05       20 阅读
  4. C++符号->

    2023-12-08 15:30:05       25 阅读
  5. C语言—计算输入字符串数字、字符数量

    2023-12-08 15:30:05       22 阅读
  6. C语言逻辑符号与数学逻辑符号联系

    2023-12-08 15:30:05       43 阅读
  7. @符号在DC过滤器表达式用途

    2023-12-08 15:30:05       7 阅读
  8. C# System.Console.WriteLine格式化输出

    2023-12-08 15:30:05       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 15:30:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 15:30:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 15:30:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 15:30:05       20 阅读

热门阅读

  1. 【力扣100】4.移动零

    2023-12-08 15:30:05       41 阅读
  2. ChatGPT的进化史

    2023-12-08 15:30:05       39 阅读
  3. openmmlab加载自训练权重

    2023-12-08 15:30:05       41 阅读
  4. 利用 Python 进行数据分析实验(六)

    2023-12-08 15:30:05       34 阅读
  5. vs2022专业版永久密钥

    2023-12-08 15:30:05       45 阅读
  6. C++提高编程—01.函数模板

    2023-12-08 15:30:05       33 阅读
  7. 一篇文章了解JDK的前世今生

    2023-12-08 15:30:05       35 阅读
  8. 面试题目总结(三)

    2023-12-08 15:30:05       36 阅读
  9. 微信小程序跳转到外部小程序

    2023-12-08 15:30:05       39 阅读
  10. 12.7每日一题(备战蓝桥杯双分支、多分支)

    2023-12-08 15:30:05       26 阅读