概览
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 = # 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》