下面详细讲解C语言中传递指向常量的指针的完整使用攻略。
什么是指向常量的指针?
指向常量的指针是指在指针声明中加上const
关键字,以表明该指针指向的变量是不可变的,如下所示:
const int *ptr;
上述代码表示ptr
是一个指向常量整型数的指针,即指向的变量是不可变的。
如何传递指向常量的指针?
在函数声明中,我们可以使用const
关键字来表明参数是一个指向常量的指针,如下所示:
int function(const int *ptr);
上述代码表示function
是一个接受一个指向常量整型数的指针作为参数的函数。
在函数中,我们可以通过const
关键字来限制指针指向的变量不可修改,如下所示:
int function(const int *ptr) {
int x = *ptr; // 合法,x是可读可写的
*ptr = 10; // 不合法,指针指向的变量是常量,不可修改
return x;
}
上述代码中,function
接受一个指向常量整型数的指针ptr
,在函数内部可以使用const
关键字限制指针指向的变量不可修改。
示例
下面提供两条示例说明如何使用指向常量的指针。
示例1:计算数组元素的平均值
#include <stdio.h>
double average(const int *arr, int len) {
double sum = 0;
for (int i = 0; i < len; i++) {
sum += arr[i];
}
return sum / len;
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
double avg = average(arr, 5);
printf("The average of the array is: %lf\n", avg);
return 0;
}
上述代码中,average
函数接受一个指向常量整型数的指针和一个整型数len
,在函数内部使用指针访问数组元素计算平均值。在函数内部使用了const
关键字限制指向的数组元素不可修改。
示例2:将字符串转换为小写
#include <stdio.h>
#include <ctype.h>
void to_lower(char *str) {
while (*str != '\0') {
*str = tolower(*str);
str++;
}
}
int main() {
char str[] = "Hello, World!";
to_lower(str);
printf("%s\n", str);
return 0;
}
上述代码中,to_lower
函数接受一个指向字符数组的指针str
,在函数内部使用指针访问字符串,将字符串中的大写字母转换为小写字母。在函数声明中使用了const
关键字限制指向的字符串不能修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言传递指向常量的指针 - Python技术站