C语言常用关键字

C语言常用关键字

1. 数据类型

  • int:表示整型数据。

  • float:表示单精度浮点型数据。

  • double:表示双精度浮点型数据。

  • char:表示字符型数据。

  • void:表示无类型,通常用于函数返回类型。

c 复制代码
int a = 10;
float b = 3.14;
double c = 5.123456;
char d = 'A';
void func();  // 声明一个无返回值的函数

2. 控制语句

  • if:条件语句,用于执行条件为真的代码块。

  • else:配合if使用,处理条件为假的情况。

  • switch:多分支选择语句。

  • case:用于在switch语句中定义分支。

  • default:用于switch语句中,当所有case都不匹配时执行。

  • for:用于执行固定次数的循环。

  • while:用于执行条件为真的循环。

  • do:与while配合使用,用于先执行后判断的循环。

  • break:用于退出当前循环或switch语句。

  • continue:用于跳过当前循环中的剩余语句,继续下一次循环。

  • return:用于从函数中返回。

c 复制代码
int x = 5;
if (x > 0) {
    printf("x is positive\n");
} else {
    printf("x is not positive\n");
}

for (int i = 0; i < 10; i++) {
    printf("%d\n", i);
}

while (x > 0) {
    printf("x = %d\n", x);
    x--;
}

switch (x) {
    case 0:
        printf("x is zero\n");
        break;
    default:
        printf("x is not zero\n");
}

3. 存储类

  • auto:自动存储类型,局部变量的默认存储类型。

  • register:建议编译器将变量存储在CPU寄存器中,而不是内存中。

  • static:声明静态变量,变量在程序的整个生命周期内保持存在。

  • extern:声明外部变量,指向其他文件中定义的变量。

  • const:定义常量,变量的值不可改变。

c 复制代码
auto int y = 0;       // 自动存储类型,局部变量
register int z = 1;   // 寄存器变量,建议存储在寄存器中
static int count = 0; // 静态变量,跨函数调用保持值
extern int g_var;     // 外部变量声明,在其他文件中定义
const int MAX = 100;  // 常量,值不可改变

4. 类型定义与结构体

  • struct:定义结构体类型。

  • union:定义共用体类型。

  • typedef:为类型定义新的名称。

  • enum:定义枚举类型。

c 复制代码
struct Point {
    int x;
    int y;
};

typedef struct Point Point;  // 定义新的类型名称

enum Weekday { MON, TUE, WED, THU, FRI, SAT, SUN };  // 枚举类型

5. 指针和内存

  • sizeof:返回数据类型或变量的字节大小。

  • volatile:指示变量可能会被外部因素修改,禁止编译器优化。

  • goto:无条件跳转语句,通常不建议使用。

c 复制代码
int *p = &x;        // 定义一个指向整数的指针
int size = sizeof(int);  // 获取int类型的大小
volatile int v;     // 声明一个易变的变量
goto label;         // 无条件跳转
label:
printf("Jumped to label\n");

6. 其他关键字

  • inline:提示编译器将函数定义为内联函数。

  • volatile:声明变量的值可能会被程序之外的因素改变。

  • restrict:指示指针是唯一访问某对象的方式,用于优化。

c 复制代码
inline void say_hello() {
    printf("Hello, World!\n");
}

restrict int *ptr = malloc(sizeof(int) * 10);  // 限制指针访问

7. 内存管理

  • malloc:动态分配内存,返回指向分配空间的指针。

  • free:释放由malloc或其他内存分配函数分配的内存。

  • calloc:分配零初始化的内存块,返回指向该块的指针。

  • realloc:调整已分配内存块的大小。

c 复制代码
int *arr = (int *)malloc(10 * sizeof(int));  // 动态分配内存
if (arr != NULL) {
    free(arr);  // 释放内存
}

8. 预处理指令

  • #define:定义宏,通常用于常量或简单的代码替换。

  • #include:引入头文件,用于包含外部定义的函数或数据类型。

  • #ifdef / #ifndef:条件编译,用于检查宏是否定义。

  • #endif:结束条件编译块。

  • #undef:取消宏定义。

  • #pragma:特定于编译器的指令,用于控制编译过程中的行为。

c 复制代码
#define PI 3.14  // 定义宏
#include <stdio.h>  // 包含标准输入输出库

#ifdef DEBUG
    printf("Debug mode\n");
#endif

9. 库函数(常用标准库)

虽然这些不是关键字,但常与C语言关键字一起使用:

  • printf:输出格式化字符串到标准输出。

  • scanf:从标准输入读取格式化输入。

  • strlen:计算字符串长度。

  • strcpy:复制字符串。

c 复制代码
#include <stdio.h>
#include <string.h>

int main() {
    char str[100] = "Hello";
    printf("Length: %lu\n", strlen(str));  // 计算字符串长度
    strcpy(str, "World");  // 复制字符串
    printf("New String: %s\n", str);
    return 0;
}

10. 其他常用关键字

  • signed:声明有符号类型变量。

  • unsigned:声明无符号类型变量。

  • long:声明长整型数据类型,表示更大的整数。

  • short:声明短整型数据类型,表示较小的整数。

c 复制代码
unsigned int positive = 10;  // 无符号整数
signed int negative = -10;   // 有符号整数
long int large = 100000L;    // 长整型
short int small = 5;         // 短整型
相关推荐
&岁月不待人&4 分钟前
Kotlin by lazy和lateinit的使用及区别
android·开发语言·kotlin
StayInLove7 分钟前
G1垃圾回收器日志详解
java·开发语言
TeYiToKu9 分钟前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
无尽的大道15 分钟前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
互联网打工人no116 分钟前
每日一题——第一百二十四题
c语言
爱吃生蚝的于勒19 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
羊小猪~~22 分钟前
数据结构C语言描述2(图文结合)--有头单链表,无头单链表(两种方法),链表反转、有序链表构建、排序等操作,考研可看
c语言·数据结构·c++·考研·算法·链表·visual studio
binishuaio28 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE30 分钟前
【Java SE】StringBuffer
java·开发语言
就是有点傻34 分钟前
WPF中的依赖属性
开发语言·wpf