基本语法

翻译整理自 cppreference - C 语言。

1. 注释

// 行注释(C99+)

/*
   块注释
   可跨多行
*/

块注释不能嵌套。

2. 标识符与命名

  • 由字母、数字、下划线组成
  • 首字符不能是数字
  • 大小写敏感
  • 不能用关键字(如 int、if、while)

3. 变量声明

int    age;
double pi = 3.14;
char   c  = 'A';

可以一次声明多个:

int a, b, c;

声明并初始化:

int x = 10, y = 20;

4. 表达式与语句

x = 1;                  // 赋值语句
x = y = z = 0;          // 链式赋值
y = (a > b) ? a : b;    // 三目

每个语句以分号结尾。

5. 块与作用域

{
    int x = 10;          // x 仅在该块内可见
    printf("%d\n", x);
}
// x 不可访问

6. 标准输入输出

#include <stdio.h>

int main(void)
{
    int age;
    printf("请输入年龄: ");
    scanf("%d", &age);
    printf("你输入的是 %d\n", age);
    return 0;
}

scanf 第二参数是地址,所以用 &。

7. 格式化占位符

占位符 含义
%d int
%u unsigned
%ld / %lld long / long long
%f float / double
%e 科学计数
%c 字符
%s 字符串
%p 指针地址
%x / %o 十六/八进制
%% 字面量 %

宽度与精度:

printf("%5d\n", 42);        //   42
printf("%-5d|\n", 42);      // 42   |
printf("%.2f\n", 3.14159);  // 3.14
printf("%05d\n", 42);       // 00042

8. 关键字(C11)

auto          break       case        char
const         continue    default     do
double        else        enum        extern
float         for         goto        if
inline        int         long        register
restrict      return      short       signed
sizeof        static      struct      switch
typedef       union       unsigned    void
volatile      while       _Alignas    _Alignof
_Atomic       _Bool       _Complex    _Generic
_Imaginary    _Noreturn   _Static_assert _Thread_local

小结

掌握注释、变量、输入输出后,已能编写简单的 C 程序。下一章学习数据类型。