格式化占位符
印出格式化占位符
整型
unsinged代表只有正數,沒有unsinged代表有正負數
整型 | byte | 占位 |
---|---|---|
int | 4 | %d |
unsinged int | 4 | %u |
short | 2 | %hd |
unsinged short | 2 | %hu |
long | 4 | %ld |
unsinged long | 4 | %ud |
char | 1 | %c |
char | 1 | %d |
注意,char也屬於整型,也可使用%d印出,以上表格列出的整型都可以使用%d印出,只是印出的精準度不同。
1
2
3
char c = 'a';
printf("%d\n", c);
printf("%c\n", c);
執行結果
97
a
sizeof
可以使用sizeof()查看所占的byte
1
2
3
4
5
6
7
//類型
int i = 10;
long j = 10;
long long l = 0;
printf("%d\n",sizeof(i));
printf("%d\n",sizeof(j));
printf("%d\n",sizeof(l));
由於環境是mac,long印出的byte數為8
執行結果
4
8
8
浮點數
浮點數 | byte | 格式化 |
---|---|---|
float | 4 | %f |
double | 8 | %lf |
long double | 8 | %Lf |
印出Float
第2行,%f,預設印出小數點後6位
第3行,%.2f,只印出小數點後2位
1
2
3
float f1 = 3.8;
printf("f1 = %f \n", f1);
printf("f1 = %.2f \n", f1);
執行結果
f1 = 3.800000
f1 = 3.80
印出double
double跟float都可以%f印出,也可用%lf,但float只能用%f
1
2
3
4
float f1 = 3.8;
double d1 = 3.8;
printf("f1 = %f , d1 = %f , d1 = %lf\n", f1, d1, d1);
printf("f1 = %.2f , d1 = %.2f , d1 = %.2lf\n", f1, d1, d1);
執行結果
f1 = 3.800000 , d1 = 3.800000 , d1 = 3.800000
f1 = 3.80 , d1 = 3.80 , d1 = 3.80