- 定义: 若int *a,则
*a
是取指针,a
表示变量的值,&a
表示取变量的地址
应用
- 可以使用指针指向变量或数组,并通过指针访问这些变量或数组的值。例如:
int *sum = NULL; // 指针的声明,初始化为NULL
int d, a = 1, b = 2, c = 3;
sum = &d; // 将指针指向变量 d
*d = a + b + c; // 使用指针修改变量 d 的值
printf("%d", *sum); // 输出指针指向的值
(2)对于数组,可以通过指针遍历数组的元素:
int arr[10], *p = arr; // 将指针指向数组的第一个元素
for (int i = 0; i < 10; i++) {
printf("%d", p[i]); // 访问数组元素
}
- 指针可以作为函数参数,通过指针可以在函数中修改传入参数的值。这样可以实现对实参的改变。例如:
#include <stdio.h>
void swap(int* p, int* q) {
int t = *p;
*p = *q;
*q = t;
}
int main() {
int a = 3, b = 5;
swap(&a, &b);
printf("a=%d, b=%d\n", a, b);
return 0;
}
作业
关注公众号[Kimo姬]即可获得答案,还有实用工具等着你。简洁好用的公众号,无付费项目无捆绑应用
-
使用指针遍历数组并输出
针对给定数组int arr[5]
,编写程序使用指针遍历数组并输出数组中的元素。 -
交换两个变量的值(指针应用)
编写一个函数void swap(int *a, int *b)
,实现交换两个整数变量的值,并在main
函数中调用该函数测试。 -
求取数组的和与平均值(指针应用)
编写一个函数void calculateSumAndAverage(int arr[], int length, int *sum, double *average)
,计算给定整数数组的和与平均值,并在main
函数中调用该函数测试。 -
判断奇偶数(指针应用)
编写一个函数int isOdd(int *num)
,判断输入的整数是奇数还是偶数,并返回 1 表示奇数,0 表示偶数。在main
函数中调用该函数测试。 -
查找数组中的最大值和最小值(指针应用)
编写一个函数void findMaxAndMin(int arr[], int length, int *max, int *min)
,通过指针返回给定整数数组的最大值和最小值,并在main
函数中调用该函数测试。 -
翻转字符串(指针应用)
编写一个函数void reverseString(char *str)
,实现翻转输入的字符串,并在main
函数中调用该函数测试。 -
复制字符串(指针应用)
编写一个函数void copyString(char *src, char *dest)
,实现复制源字符串到目标字符串,并在main
函数中调用该函数测试。 -
使用指针实现字符串连接(不使用内置函数)
编写一个函数void concatenateStrings(char *str1, char *str2, char *result)
,通过指针实现两个字符串的连接,并将结果存储在result
中,并在main
函数中调用该函数测试。 -
判断字符串是否为回文(指针应用)
编写一个函数int isPalindrome(char *str)
,判断输入的字符串是否为回文,并返回 1 表示是回文,0 表示不是回文。在main
函数中调用该函数测试。