格式化占位符

印出格式化占位符

整型

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

results matching ""

    No results matching ""