C语言中使用的不同格式说明符有哪些?

1. C语言中的格式说明符

在 C 语言中,格式说明符(format specifier)用来在控制台窗口中打印输出特定数据类型的值。与每个格式说明符相关联的是一个转换字符(conversion character),用来确切地指定要打印输出数据的类型。C 语言中比较常见的格式说明符有以下几种。

1.1 %d 和 %i

在 C 语言中,%d 和 %i 都用来打印输出十进制整数。以下是一个例子:

// 输出10

printf("%d", 10);

注意: %i 和 %d 的区别在于当要输出的整数以 0 开头时,%i 会将这个整数视为八进制数,而不是十进制数;而 %d 总是将要输出的整数视为十进制数。

1.2 %f、%e 和 %g

%f 用来打印输出浮点数的值,以下是一个例子:

// 输出3.141593

printf("%f", 3.141592653589793);

%e 用来将浮点数的值以科学技术法(scientific notation)的形式打印输出,以下是一个例子:

// 输出3.141593e+00

printf("%e", 3.141592653589793);

%g 用来自动选择合适的输出方式,可以输出浮点数的值,也可以按科学技术法的形式输出,以下是一个例子:

// 输出3.14159

printf("%g", 3.141592653589793);

1.3 %c 和 %s

%c 用来打印输出一个字符的值,以下是一个例子:

// 输出a

printf("%c", 'a');

%s 用来打印输出一个字符串的值,以下是一个例子:

// 输出hello, world!

printf("%s", "hello, world!");

1.4 %u 和 %o

%u 用来打印输出一个无符号整数的值,以下是一个例子:

// 输出4294967295

printf("%u", -1);

%o 用来打印输出一个八进制整数的值,以下是一个例子:

// 输出52

printf("%o", 42);

1.5 %x 和 %X

%x 和 %X 都用来打印输出一个十六进制数的值。%x 打印输出的十六进制数中字母为小写形式,%X 打印输出的十六进制数中字母为大写形式,以下是一个例子:

// 输出2a

printf("%x", 42);

// 输出2A

printf("%X", 42);

1.6 %p

%p 用来打印输出一个指针变量的值,以下是一个例子:

int *ptr;

...

// 输出0x7ffeeddccbba

printf("%p", ptr);

注意: 在不同的系统中,指针的内存地址大小是不一样的。

2. 总结

C 语言中常用的格式说明符主要有 %d、%i、%f、%e、%g、%c、%s、%u、%o、%x 和 %p。需要针对不同的数据类型选择不同的格式说明符。

后端开发标签