每日一个C语言知识:C语言基础语法
C语言基础语法
1. 标识符(变量名、函数名)
命名规则:
- 由字母、数字和下划线
_
组成 - 不能以数字开头
- 区分大小写(
age
和Age
是不同的) - 不能使用C语言的关键字(如
int
,if
,for
等)
示例:
int age; // ✅ 正确
float _salary; // ✅ 正确
char student_name;// ✅ 正确
double 2ndValue; // ❌ 错误:以数字开头
int if; // ❌ 错误:使用关键字
2. 关键字
C语言有32个保留关键字,不能用作标识符:
基本类型 | 控制流 | 其他 |
---|---|---|
int , float , double , char | if , else , switch , case | sizeof |
short , long , signed , unsigned | for , while , do | return |
void , auto , register , static | break , continue , goto | typedef |
extern , const , volatile | default | struct , union , enum |
3. 基本数据类型
类型 | 大小 | 范围 | 示例 |
---|---|---|---|
char | 1字节 | -128 到 127 | char grade = 'A'; |
int | 4字节 | -2³¹ 到 2³¹-1 | int age = 25; |
float | 4字节 | 约 ±3.4e±38 | float price = 19.99; |
double | 8字节 | 约 ±1.7e±308 | double distance = 123.456; |
类型修饰符:
short
:短整型long
:长整型signed
:有符号(默认)unsigned
:无符号
4. 变量声明与初始化
#include <stdio.h>int main() {// 声明变量int age;float salary;char initial;// 初始化变量age = 25;salary = 5000.75;initial = 'J';// 声明并初始化int score = 95;double pi = 3.14159;// 同时声明多个同类型变量int x = 10, y = 20, z = 30;printf("Age: %d\n", age);printf("Salary: %.2f\n", salary);printf("Initial: %c\n", initial);return 0;
}
5. 常量
定义常量的两种方式:
- 使用
#define
预处理器:
#include <stdio.h>
#define PI 3.14159
#define MAX_SIZE 100int main() {double area = PI * 5 * 5;printf("Area: %.2f\n", area);return 0;
}
- 使用
const
关键字:
#include <stdio.h>int main() {const int DAYS_IN_WEEK = 7;const float TAX_RATE = 0.15;// DAYS_IN_WEEK = 8; // ❌ 错误:不能修改常量printf("Days in week: %d\n", DAYS_IN_WEEK);return 0;
}
6. 基本输入输出
输出函数 printf
:
#include <stdio.h>int main() {int age = 25;float salary = 3500.50;char name[] = "John";printf("Hello World!\n"); // 简单输出printf("Age: %d\n", age); // 整数printf("Salary: %.2f\n", salary); // 浮点数,保留2位小数printf("Name: %s\n", name); // 字符串printf("Name: %s, Age: %d\n", name, age); // 多个变量return 0;
}
输入函数 scanf
:
#include <stdio.h>int main() {int age;float height;char name[50];printf("Enter your name: ");scanf("%s", name); // 输入字符串(注意:没有&)printf("Enter your age: ");scanf("%d", &age); // 输入整数(注意:必须有&)printf("Enter your height: ");scanf("%f", &height); // 输入浮点数printf("\n--- Your Information ---\n");printf("Name: %s\n", name);printf("Age: %d\n", age);printf("Height: %.2f\n", height);return 0;
}
7. 格式化说明符
数据类型 | 格式说明符 | 示例 |
---|---|---|
int | %d | printf("%d", 100); |
float | %f | printf("%.2f", 3.14159); |
double | %lf | printf("%.3lf", 3.14159); |
char | %c | printf("%c", 'A'); |
字符串 | %s | printf("%s", "Hello"); |
八进制 | %o | printf("%o", 10); |
十六进制 | %x | printf("%x", 255); |
8. 注释
#include <stdio.h>// 这是单行注释/*这是多行注释可以跨越多行
*/int main() {int x = 10; // 声明并初始化变量x/* 计算x的平方并输出结果*/int square = x * x;printf("Square: %d\n", square);return 0;
}
9. 完整的简单程序示例
#include <stdio.h>// 定义常量
#define TAX_RATE 0.1int main() {// 变量声明float salary, tax, net_salary;// 输入printf("请输入您的工资: ");scanf("%f", &salary);// 计算tax = salary * TAX_RATE;net_salary = salary - tax;// 输出结果printf("\n=== 工资明细 ===\n");printf("基本工资: %.2f\n", salary);printf("税费 (%.1f%%): %.2f\n", TAX_RATE * 100, tax);printf("实发工资: %.2f\n", net_salary);return 0;
}