标题:C语言基础教程——第四章
本文讲解C语言基础教程第四章的内容,主要涵盖了指针和函数相关的知识点。
1.指针
1.1指针的定义和基本操作
指针是一个变量,其值为另一个变量的地址。可以使用“&”符号获取变量的地址,使用“*”符号获取指针指向的变量的值。
int a = 10;
int *p = &a;
printf("%d\n", *p); //输出10
1.2指针的算术运算
指针变量可以进行加、减、比较、赋值等运算,这些运算通常用于数组操作。
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr;
printf("%d\n", *p); //输出1
printf("%d\n", *(p+1));//输出2
printf("%d\n", *(p+2));//输出3
1.3指针和数组
数组名是一个常量指针,可以用一个指针变量指向数组,并用指针访问数组元素。
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr;
printf("%d\n", p[0]); //输出1
printf("%d\n", p[1]); //输出2
printf("%d\n", p[2]); //输出3
2.函数
2.1函数的定义和声明
函数是一个独立的模块,用于完成特定的任务。需要先定义和声明函数,才能在程序中调用它。
int sum(int a, int b); //声明函数
int main() {
int a = 1, b = 2;
int c = sum(a, b); //调用函数
printf("%d\n", c); //输出3
}
int sum(int a, int b) { //定义函数
return a + b;
}
2.2函数的返回值和参数
函数可以有返回值,也可以没有返回值。参数分为值传递和指针传递两种方式。
int max(int a, int b) {
return a > b ? a : b; //返回最大值
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp; //交换两个变量的值
}
int main() {
int a = 3, b = 4;
int c = max(a, b); //调用函数求最大值
printf("%d\n", c); //输出4
swap(&a, &b); //调用函数交换两个变量的值
printf("%d %d\n", a, b); //输出4 3
}
示例
示例1:指针变量作为函数参数
以下代码演示如何使用指针变量作为函数参数,修改函数外部变量的值。
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a = 3, b = 4;
printf("%d %d\n", a, b); //输出3 4
swap(&a, &b); //调用函数交换两个变量的值
printf("%d %d\n", a, b); //输出4 3
return 0;
}
示例2:函数指针
以下代码演示如何使用指针来访问函数,实现动态调用的功能。
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int main() {
int (*p)(int, int) = add; //定义函数指针并初始化为add函数
int a = 3, b = 4;
printf("%d\n", p(a, b)); //输出7
p = sub; //改变函数指针指向sub函数
printf("%d\n", p(a, b)); //输出-1
return 0;
}
本文详细介绍了C语言基础教程第四章的内容,包括指针的定义和基本操作、指针的算术运算、指针和数组、函数的定义和声明、函数的返回值和参数等知识点,并通过两个实例说明了指针变量作为函数参数、函数指针等内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C 语言基础教程(我的C之旅开始了)[四] - Python技术站