一、printf 的基础知识:
1、printf常用打印规定符:
%d 打印十进制有符号整数 %u 打印十进制无符号整数 %lu 打印32位无符号整数 %llu 打印64位无符号整数 %f 打印浮点数 %s 打印字符串 %c 打印单个字符 %p 打印指针的值 %x, %X 打印无符号以十六进制表示的整数 %o 打印无符号以八进制表示的整数
2、printf常用转义符:
\n 换行 \f 清屏并换页 \r 回车 \t Tab符
二、举例说明
1、使用%d打印有符号十进制整数
#include <stdio.h> int main(void) { int a,b; //定义a,b两个整数 a = 100; //给a赋值为100 b = -100; //给b赋值为-100 printf("a=%d\n",a); //使用%d打印a printf("b=%d\n",b); //使用%d打印b return 0; }
运行结果:
a=100 b=-100
2、使用%u打印无符号十进制整数
#include <stdio.h> int main(void) { int a,b; a = 100; b = -100; printf("a=%u\n",a); printf("b=%u\n",b); return 0; }
运行结果:
a=100 b=4294967196
所以使用%u去打印-100时,出现了错误。
3、使用%f打印浮点型
#include <stdio.h> int main(void) { float a; double b; a = 3.14; b = 3.14; printf("a=%f\n",a); printf("b=%f\n",b); return 0; }
运行结果:
a=3.140000 b=3.140000
float和double 都可以直接使用%f来打印。
4、使用%s打印字符串
#include <stdio.h> int main(void) { char str[] = "Hello world!"; //定义一个字符数组,其实就是字符串,字符串是以\0为结尾的字符数组 printf("str:%s\n",str); return 0; }
运行结果:
str:Hello world!
5、使用%c打印字符:
#include <stdio.h> int main(void) { char c; //定义字符变量c, c = 'a'; //给字符变量c赋值, printf("%c\n",c); //打印字符变量c, 其中%c是代表打印输出字符变量。 return 0; }
运行结果:
a
6、使用%p打印指针地址值:
#include <stdio.h> int main(void) { int a; //定义整数变量a printf("%p\n",&a); //其中&a是指定a变量的内存地址,%p是指打印内存地址。 return 0; }
运行结果:
0x7fff86e6604c
这里的结果和你运行的结果会不一样,这里打印的是变量a的内存地址。
7、使用%x, %X打印十六进制数
%x打印十六进制数,以小写形式
%X打印十六进制数,以大写形式
#include <stdio.h> int main(void) { int a; a = 0xab; //直接用十六进制数0xab赋值 printf("a=%x\n",a); printf("a=%X\n",a); return 0; }
运行结果:
a=ab a=AB
8、以%o打印无符号八进制
#include <stdio.h> int main(void) { int a; a = 100; printf("a=%o\n",a); return 0; }
运行结果:
a=144