实例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 = #
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;
}
scanf和printf是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
