学习 C 编程语言

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 用于字符串。

科学记数法: 34e223E5

小数精度设置: %.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]);
  }
}
欢迎通过「邮件」或者点击「这里」告诉我你的想法
Welcome to tell me your thoughts via "email" or click "here"