https://www.w3schools.com/c/index.php
C 语言创造于 1972 年,至今仍在广泛使用。学习 C 语言可以帮助我理解 Linux 内核。
C 的 Hello World
#include <stdio.h> // 头文件,用于引用需要的库文件
int main () { // 声明一个函数
printf("Hello World!"); // ; 是每行语句必备的
}
插入新行
使用 \n,其他类似的用法 \t, \\, \"。
声明变量
- int
- float
- char 声明单字符
变量声明后,变量对应的值可被更改。
格式化输出
- %d 输出整数
- %f 输出小数,%.1f 输出一位小数
- %c 输出单个字母
例子:
int studentId = 15;
int studentAge = 23;
float studentFee = 45.6;
char studentGrade = 'C';
printf("Student id: %d\n", studentId);
printf("Student age: %d\n", studentAge);
printf("Student fee: %f\n", studentFee);
printf("Student grade: %c", studentGrade);
数据类型
- 整型 2/4 字节 %d
- 浮点型 4 字节 %f/%F
- 双精度浮点 8 字节 %lf
- 字符型 1 字节 %c
还有个 %s 用于字符串。
科学记数法: 34e2
, 23E5
。
小数精度设置: %.1f
占用内存大小使用 sizeof 查看: sizeof(variable)
类型转换:显式和隐式
常量
使用 const 定义,定义时为了和变量区分,可以用大写
操作符
分类:算术、赋值、比较、逻辑、位。
布尔值
使用该类型需要导入库 stdbool.h 到头文件
使用 bool 定义布尔值
条件从句
- if..else..
- switch
- while..
- do..while..
- for
- break/continue
数组
int dice[] = {1, 2, 3};
dice[0] = 4;
printf("%d", dice[0]);
int myNumbers[] = {23, 45, 67};
int i;
for (i = 0; i < 3; i++) {
printf("%d\n", myNumbers[i]);
}
int myNumbers[3];
myNumbers[0] = 23;
myNumbers[1] = 22;
myNumbers[2] = 21;
int array[] = {1, 2, 3};
printf("%lu", sizeof(array));
上面输出数组的字节大小,要想输出长度见下面代码。
int array[] = {1, 2, 3};
int length = sizeof(array) / sizeof(array[0]);
printf("%d", length);
int ages[] = {20, 22, 18, 35, 48, 26, 87, 70};
float avg, sum = 0;
int i;
int length = sizeof(ages) / sizeof(ages[0]);
for(i = 0; i < length; i++) {
sum += ages[i];
}
avg = sum / length;
printf("The average age is: %.2f", avg);
int ages[] = {20, 22, 18, 35, 48, 26, 87, 70};
float avg, sum = 0;
int i;
int length = sizeof(ages) / sizeof(ages[0]);
int lowestAge = ages[0];
for(i = 0; i < length; i++) {
if (lowestAge > ages[i]) {
lowestAge = ages[i];
}
}
int matrix[2][3] = { {1, 7, 9}, {7, 3, 1} };
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++) {
printf("%d\n", matrix[i][j]);
}
}