C语言的输出函数:
#include <stdio.h>
/**
printf()输出函数
%c char占位符
%d 整型占位符
%hd 短整型占位符
%ld 长整形占位符
%f float占位符
%lf double占位符
%u 无符号占位符
%x 16进制
%o 八进制
%s 字符串
*/
void main(){
char c = 'a';
int d = 222222222;
short hd = 12332;
long ll = 123213123;
float f= 3.1521f;
double dd= 3.12576413581;
//C语言定义字符串相当于定义一个char数组,没有String类型关键字
char str[] = "what the fuck?";
printf("c = %c\n",c);
printf("d = %d\n",d);
printf("hd = %hd\n",hd);
printf("ld = %ld\n",ll);
printf("f = %f\n",f);
printf("lf = %lf\n",dd);
printf("str = %s\n",str);
}
C语言输出函数需要用占位符去代替变量,而不像java一样 可以随意用 + 号来连接要输出的各种内容。C语言中对于不同变量的占位符也不一样,详情如上所写。
上面程序运行结果:
c = a
d = 222222222
hd = 12332
ld = 123213123
f = 3.152100
lf = 3.125764
str = what the fuck?
注意点:
一:必须选用正确的占位符,要不会出现错误。比如,一个整型数据使用一个短整型占位符输出,那么数据会不正确,因为short类型2字节,int类型4字节,所以高位2字节会被截取。
二:浮点型数据默认显示小数点后六点,根据需要可指定保留小数的位数,方法如下:
printf("lf = %0.11lf\n",dd);
在%号后面 加上 .与所要保留的小数位数即可。 比如想要保留11位小数 那么就在%后面加上 .11。
三:如何定义与输出字符串。(如何定义一个汉字?)
C语言中没有String类型, 一个汉字2字节,但一个char只代表一个字节,所以不能这样使用 char str = '好'。C语言中定义字符串就是定义一个char型数组。
//C语言定义字符串相当于定义一个char数组,没有String类型关键字
char str[] = "what the fuck?";
输出一个字符串:
printf("str = %s\n",str);
使用%s占位符。那么如何输入字符串中的一个字呢?
假如定义一个这样的字符串:
char str[] = "你好?";
那么要输出第一个汉字,就要输出char数组的第一个和第二个字节,也就是char[0],char[1]
printf("str = %c%c\n",str[0],str[1]);
结果:
str = 你
四:一个变量前加上一个&符号是什么意思? 是取这个变量的内存地址。
printf("内存地址=%x",&c);
结果:
内存地址=62fe37
%x是16进制的占位符。 16进制表示的时候一般前面需要加上0x 那么该如何做?
printf("内存地址=%#x",&c);
只需要在%后面加上#号就可以了。