零基础学C语言 格式化输出与变量类型

420 阅读2分钟

格式化输出

PHP里面,我们一般都是用echovar_dump以及print_r等来输出调试语句,在C语言中一般用printf来输出,不过由有点特殊,你需要在输出的时候指定输出的数据类型:

#include <stdio.h>

int main(){
    int age = 10;
    printf("I am %d years old.\n", age);

    return 0;
} 

如以上的代码,需要指定%d来表示输出的是整型,我们常用的输出类型有:

Tables Are
d 以十进制形式输出带符号整数(正数不输出符号)
u 以十进制形式输出无符号整数
o 以八进制形式输出无符号整数(不输出前缀0)
x 以十六进制形式输出无符号整数(不输出前缀Ox)
f 以小数形式输出单、双精度实数
c 输出单个字符
s 输出字符串

变量类型

C语言是一门静态语言,定义变量的时候需要指定类型:

include <stdio.h>

int main(int argc, char *argv[])
{
    int age = 100;
    float num = 2.345f;
    double super_num = 56789.4532;
    char initial = 'A';
    char str[] = "str";

    printf("age is %d.\n", age);
    printf("num is %f.\n", num);
    printf("super num is %f.\n", super_num);
    printf("char is %c.\n", initial);
    printf("str is %s.\n", str);

    return 0;
}

除了以上的基本类型,还可以定义数组:

#include <stdio.h>

int main(int argc, char *argv[])
{
    int nums[] = {10, 15, 20, 14, 28};
    char name[] = "Cook";
    char full_name[] = {
        'T', 'i', 'm','C','o','o','k','\0'
    };
 
    printf("The first num is %d, the 2nd %d.\n",areas[0], areas[1]);
    printf("name=\"%s\" and full_name=\"%s\"\n",name, full_name);

    return 0;
}

其实在C语言中,字符串就是一个字节数组,最后也是以'\0'来结尾的:

#include <stdio.h>
int main(int argc, char *argv[])
{
    int nums[4] = {0};
    char name[4] = {'a'};
    printf("nums: %d %d %d %d\n",nums[0], nums[1],nums[2], nums[3]);
    printf("name each: %c %c %c %c\n",name[0], name[1],name[2], name[3]);
    printf("name: %s\n", name);
    return 0;
}

输出结果:

nums: 0 0 0 0
name each: a   
name: a

可以知道,整型数组定以后未赋值默认为0,字符数组就是为空.而且字符数组可以直接以字符串的形式输出。

关于布尔类型,在C语言中,没有真正意义上的布尔类型,而是用一个整数来表示。0表false,1表示true

数据类型大小

数据类型的大小在C语言上是很常见的,我们可以使用sizeof来检测一个长度,他返回的是一个long unsigned int类型的,所以要用%ld来格式化输出:

#include <stdio.h>
int main(){
    printf("The size of short: %ld\n", sizeof(short));
    printf("The size of int: %ld\n", sizeof(int));
    printf("The size of float: %ld\n",sizeof(float));
    printf("The size of double: %ld\n", sizeof(double));
    printf("The size of char: %ld\n", sizeof(char));
}

运行结果如下(64位机器):

The size of short: 2
The size of int: 4
The size of float: 4
The size of double: 8
The size of char: 1