实例1:打印Hello World

#include <stdio.h>

int main() {
    printf("Hello World!\n");
    return 0;
}

在C语言编程中,第一个实例通常是打印“Hello World!”到控制台。这个例子展示了如何使用printf函数来输出文本。

实例2:变量声明与赋值

#include <stdio.h>

int main() {
    int age = 25;
    float salary = 5000.5;
    char grade = 'A';
    printf("Age: %d\n", age);
    printf("Salary: %.2f\n", salary);
    printf("Grade: %c\n", grade);
    return 0;
}

在这个例子中,我们学习了如何声明和初始化不同类型的变量。这里我们声明了一个整型变量age,一个浮点型变量salary,和一个字符型变量grade

实例3:算术运算

#include <stdio.h>

int main() {
    int num1 = 10;
    int num2 = 5;
    int sum = num1 + num2;
    int difference = num1 - num2;
    int product = num1 * num2;
    int quotient = num1 / num2;
    printf("Sum: %d\n", sum);
    printf("Difference: %d\n", difference);
    printf("Product: %d\n", product);
    printf("Quotient: %d\n", quotient);
    return 0;
}

这里我们通过几个基本的算术运算来演示如何使用C语言的算术运算符。

实例4:条件语句

#include <stdio.h>

int main() {
    int number = 10;
    if (number > 0) {
        printf("Number is positive.\n");
    } else if (number < 0) {
        printf("Number is negative.\n");
    } else {
        printf("Number is zero.\n");
    }
    return 0;
}

这个实例展示了如何使用if-else条件语句来判断一个数字是正数、负数还是零。

实例5:循环结构

#include <stdio.h>

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

循环结构是编程中的基础,这个例子使用了一个for循环来打印从1到10的数字。

实例6:函数定义与调用

#include <stdio.h>

void greet() {
    printf("Hello, World!\n");
}

int main() {
    greet();
    return 0;
}

在这个例子中,我们定义了一个名为greet的函数,并在main函数中调用它。

实例7:数组的创建与访问

#include <stdio.h>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    printf("First number: %d\n", numbers[0]);
    printf("Second number: %d\n", numbers[1]);
    return 0;
}

这里我们创建了一个包含5个整数的数组,并展示了如何访问数组的元素。

实例8:字符串处理

#include <stdio.h>
#include <string.h>

int main() {
    char message[] = "Hello, World!";
    printf("Message: %s\n", message);
    printf("Length of message: %lu\n", strlen(message));
    return 0;
}

在这个例子中,我们使用了strlen函数来计算字符串的长度。

实例9:指针的基本操作

#include <stdio.h>

int main() {
    int num = 10;
    int *ptr = &num;
    printf("Value of num: %d\n", num);
    printf("Address of num: %p\n", (void*)&num);
    printf("Value of ptr: %p\n", (void*)ptr);
    printf("Value of *ptr: %d\n", *ptr);
    return 0;
}

这个实例展示了指针的基本操作,包括获取变量的地址和通过指针访问变量的值。

实例10:结构体定义与使用

#include <stdio.h>

typedef struct {
    int id;
    char name[50];
} Student;

int main() {
    Student student1;
    student1.id = 1;
    strcpy(student1.name, "John Doe");
    printf("Student ID: %d\n", student1.id);
    printf("Student Name: %s\n", student1.name);
    return 0;
}

结构体允许我们将不同类型的数据组合在一起。在这个例子中,我们定义了一个Student结构体,并在main函数中创建了一个Student类型的变量。

实例11:文件操作

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "w");
    if (file == NULL) {
        printf("Error opening file.\n");
        return 1;
    }
    fprintf(file, "This is a test file.\n");
    fclose(file);
    return 0;
}

这个实例展示了如何使用C语言进行文件操作,包括打开、写入和关闭文件。

实例12:动态内存分配

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*)malloc(5 * sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed.\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        ptr[i] = i + 1;
    }
    for (int i = 0; i < 5; i++) {
        printf("%d\n", ptr[i]);
    }
    free(ptr);
    return 0;
}

动态内存分配允许我们在运行时分配内存。在这个例子中,我们使用malloc函数分配了一个整型数组的内存。

实例13:指针数组

#include <stdio.h>

int main() {
    int num1 = 10;
    int num2 = 20;
    int *ptrArray[2];
    ptrArray[0] = &num1;
    ptrArray[1] = &num2;
    printf("First number: %d\n", *ptrArray[0]);
    printf("Second number: %d\n", *ptrArray[1]);
    return 0;
}

指针数组是一个数组,它的元素是指针。在这个例子中,我们创建了一个指针数组,并将两个整数的地址存储在它里面。

实例14:二维数组

#include <stdio.h>

int main() {
    int numbers[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", numbers[i][j]);
        }
        printf("\n");
    }
    return 0;
}

二维数组是数组的数组。在这个例子中,我们创建了一个3x3的二维数组,并打印了它的内容。

实例15:函数指针

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main() {
    int (*ptr)(int, int) = add;
    printf("Sum: %d\n", ptr(3, 4));
    return 0;
}

函数指针允许我们将函数作为参数传递。在这个例子中,我们创建了一个指向add函数的指针,并使用它来调用函数。

实例16:递归函数

#include <stdio.h>

int factorial(int n) {
    if (n <= 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

int main() {
    int num = 5;
    printf("Factorial of %d: %d\n", num, factorial(num));
    return 0;
}

递归函数是自我调用的函数。在这个例子中,我们定义了一个计算阶乘的递归函数。

实例17:结构体数组

#include <stdio.h>

typedef struct {
    int id;
    char name[50];
} Student;

int main() {
    Student students[3] = {
        {1, "John Doe"},
        {2, "Jane Smith"},
        {3, "Alice Johnson"}
    };
    for (int i = 0; i < 3; i++) {
        printf("Student ID: %d, Name: %s\n", students[i].id, students[i].name);
    }
    return 0;
}

结构体数组允许我们将多个结构体实例存储在一个数组中。在这个例子中,我们创建了一个Student类型的数组,并初始化了它。

实例18:共用体

#include <stdio.h>

typedef union {
    int id;
    float salary;
    char name[50];
} Employee;

int main() {
    Employee emp;
    emp.id = 1;
    printf("Employee ID: %d\n", emp.id);
    emp.salary = 5000.5;
    printf("Employee Salary: %.2f\n", emp.salary);
    strcpy(emp.name, "John Doe");
    printf("Employee Name: %s\n", emp.name);
    return 0;
}

共用体允许我们存储不同类型的数据在同一内存位置。在这个例子中,我们定义了一个Employee共用体,并展示了如何使用它。

实例19:枚举类型

#include <stdio.h>

typedef enum {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
} Day;

int main() {
    Day today = FRIDAY;
    printf("Today is %d\n", today);
    return 0;
}

枚举类型允许我们定义一组命名的整型常量。在这个例子中,我们定义了一个Day枚举类型,并使用它来表示一周中的某一天。

实例20:宏定义

#include <stdio.h>

#define PI 3.14159

int main() {
    printf("Value of PI: %f\n", PI);
    return 0;
}

宏定义是简单的文本替换。在这个例子中,我们定义了一个名为PI的宏,其值为圆周率。

实例21:位运算

#include <stdio.h>

int main() {
    int a = 5;
    int b = 3;
    printf("a & b: %d\n", a & b);
    printf("a | b: %d\n", a | b);
    printf("a ^ b: %d\n", a ^ b);
    printf("a << 1: %d\n", a << 1);
    printf("a >> 1: %d\n", a >> 1);
    return 0;
}

位运算是对整数进行按位操作。在这个例子中,我们演示了位与、位或、位异或、左移和右移操作。

实例22:字符数组与字符串

#include <stdio.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    printf("Concatenated String: %s%s\n", str1, str2);
    return 0;
}

字符数组和字符串在C语言中非常相似。在这个例子中,我们演示了如何连接两个字符串。

实例23:字符串函数

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    printf("Length of str1: %lu\n", strlen(str1));
    printf("Concatenated String: %s%s\n", str1, str2);
    return 0;
}

C语言提供了许多字符串处理函数,例如strlen用于计算字符串长度。

实例24:输入输出函数

#include <stdio.h>

int main() {
    int num;
    printf("Enter an integer: ");
    scanf("%d", &num);
    printf("You entered: %d\n", num);
    return 0;
}

scanfprintf是C语言中用于输入输出的基本函数。

实例25:动态字符串分配

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char *str = (char*)malloc(10 * sizeof(char));
    if (str == NULL) {
        printf("Memory allocation failed.\n");
        return 1;
    }
    strcpy(str, "Hello");
    printf("String: %s\n", str);
    free(str);
    return 0;
}

动态字符串分配允许我们在运行时分配字符串的内存。

实例26:结构体与指针

#include <stdio.h>

typedef struct {
    int id;
    char name[50];
} Student;

int main() {
    Student student1 = {1, "John Doe"};
    Student *ptr = &student1;
    printf("Student ID: %d\n", (*ptr).id);
    printf("Student Name: %s\n", (*ptr).name);
    return 0;
}

结构体与指针可以一起使用,以便我们可以通过指针访问结构体的成员。

实例27:指针数组与指针

#include <stdio.h>

int main() {
    int num1 = 10;
    int num2 = 20;
    int *ptrArray[2];
    ptrArray[0] = &num1;
    ptrArray[1] = &num2;
    printf("First number: %d\n", *ptrArray[0]);
    printf("Second number: %d\n", *ptrArray[1]);
    return 0;
}

指针数组可以包含指向其他指针的指针,从而形成多级指针。

实例28:函数指针与回调函数

#include <stdio.h>

void greet() {
    printf("Hello, World!\n");
}

int main() {
    void (*ptr)(void) = greet;
    ptr();
    return 0;
}

函数指针可以指向函数,并允许我们在运行时调用这些函数。

实例29:递归函数与递归调用

#include <stdio.h>

int factorial(int n) {
    if (n <= 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

int main() {
    int num = 5;
    printf("Factorial of %d: %d\n", num, factorial(num));
    return 0;
}

递归函数是自我调用的函数,递归调用是函数在执行过程中调用自身。

实例30:全局变量与局部变量

#include <stdio.h>

int globalVar = 10;

int main() {
    int localVar = 20;
    printf("Global variable: %d\n", globalVar);
    printf("Local variable: %d\n", localVar);
    return 0;
}

全局变量在整个程序中都是可访问的,而局部变量仅在函数内部可访问。

实例31:静态变量与全局变量

#include <stdio.h>

void func() {
    static int staticVar = 10;
    printf("Static variable: %d\n", staticVar);
}

int main() {
    func();
    func();
    return 0;
}

静态变量在函数调用之间保持其值,而全局变量在整个程序中保持其值。

实例32:外部变量与内部变量

#include <stdio.h>

int main() {
    int globalVar = 10;
    int localVar = 20;
    printf("Global variable: %d\n", globalVar);
    printf("Local variable: %d\n", localVar);
    return 0;
}

外部变量可以在文件中的所有函数中访问,而内部变量仅在定义它的函数中可见。

实例33:变量的作用域

#include <stdio.h>

int main() {
    int globalVar = 10;
    int localVar = 20;
    {
        int innerVar = 30;
        printf("Global variable: %d\n", globalVar);
        printf("Local variable: %d\n", localVar);
        printf("Inner variable: %d\n", innerVar);
    }
    printf("Global variable: %d\n", globalVar);
    printf("Local variable: %d\n", localVar);
    return 0;
}

变量的作用域决定了变量在程序中可访问的区域。

实例34:变量的生存期

#include <stdio.h>

int main() {
    int *ptr = (int*)malloc(10 * sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed.\n");
        return 1;
    }
    printf("Memory allocated.\n");
    free(ptr);
    printf("Memory freed.\n");
    return 0;
}

变量的生存期是指变量在内存中存在的持续时间。

实例35:变量的初始化

#include <stdio.h>

int main() {
    int num;
    num = 10;
    printf("Value of num: %d\n", num);
    return 0;
}

变量的初始化是指在声明变量时为其分配一个初始值。

实例36:常量与变量

#include <stdio.h>

#define PI 3.14159

int main() {
    const int num = 10;
    printf("Value of PI: %f\n", PI);
    printf("Value of num: %d\n", num);
    return 0;
}

常量是不可改变的值,而变量是可以改变的值。

实例37:数据类型转换

#include <stdio.h>

int main() {
    int a = 10;
    float b = 3.14;
    printf("Sum: %f\n", a + b);
    return 0;
}

数据类型转换是指将一个值从一个数据类型转换为另一个数据类型。

实例38:类型别名

”`c #include

typedef int INT; typedef float FLOAT;

int main