基本语法
翻译整理自 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 程序。下一章学习数据类型。