int* const test这个是什么意思
时间: 2023-07-11 07:08:35 浏览: 88
这是一个指针常量的声明,其中 `int*` 表示指向整型数据的指针类型,`const` 表示该指针所指向的地址是常量,即指针本身不能被修改,但是可以通过该指针访问和修改所指向的整型数据。换句话说,这个指针变量是只读的,但是可以用来修改它所指向的变量的值。例如:
```
int a = 10;
int b = 20;
int* const ptr = &a;
*ptr = 30; // 修改 ptr 所指向的变量 a 的值
ptr = &b; // 错误,因为 ptr 是一个指针常量,不能修改它的值,即它所指向的地址
```
相关问题
int* const test与const int* test区别
`int* const test` 和 `const int* test` 都是指针类型,但它们的含义不同。
`int* const test` 表示 `test` 是一个指向 `int` 类型的常量指针,即指针本身是常量,不能再指向其他地址,但可以通过指针修改所指向地址中的值。
而 `const int* test` 表示 `test` 是一个指向 `const int` 类型的指针,即指针指向的地址中的值是常量,不能通过指针修改所指向地址中的值,但可以通过其他方式修改所指向地址中的值。
去掉最高值,去掉最低值,求平均值 用void Max(const int *arr,int len,int *max){} void Min(const int *arr,int len,int *min){} void Sum(const int *arr,int len,int *sum){} void Avg(int sum,int max,int min,int len,float *avg){} void test03(){ int arr[]={1,2,5,4,3,6,7}; int len =sizeof (arr)/sizeof (int); }
可以使用以下代码实现:
```
#include <iostream>
using namespace std;
void Max(const int *arr, int len, int *max) {
*max = arr[0];
for (int i = 1; i < len; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
}
}
void Min(const int *arr, int len, int *min) {
*min = arr[0];
for (int i = 1; i < len; i++) {
if (arr[i] < *min) {
*min = arr[i];
}
}
}
void Sum(const int *arr, int len, int *sum) {
*sum = 0;
for (int i = 0; i < len; i++) {
*sum += arr[i];
}
}
void Avg(int sum, int max, int min, int len, float *avg) {
*avg = (float)(sum - max - min) / (len - 2);
}
void test03() {
int arr[] = {1, 2, 5, 4, 3, 6, 7};
int len = sizeof(arr) / sizeof(int);
int max, min, sum;
float avg;
Max(arr, len, &max);
Min(arr, len, &min);
Sum(arr, len, &sum);
Avg(sum, max, min, len, &avg);
cout << "Max: " << max << endl;
cout << "Min: " << min << endl;
cout << "Sum: " << sum << endl;
cout << "Avg: " << avg << endl;
}
int main() {
test03();
return 0;
}
```
运行结果为:
```
Max: 7
Min: 2
Sum: 28
Avg: 3.5
```
阅读全文