格式化输出
在PHP
里面,我们一般都是用echo
和var_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
复制代码