const int * p1 和 int* const p2的区别
时间: 2023-08-05 16:06:04 浏览: 69
`const int* p1` 和 `int* const p2` 都是指针类型,但是它们的含义不同。
- `const int* p1` 表示指向常量整型的指针,即指针指向的值不能被修改,但是指针本身可以被修改。例如,`p1` 可以指向不同的 `const int` 类型的变量,但是不能通过 `p1` 来修改所指向的值。可以用以下方式定义 `p1`:
```
const int* p1;
```
- `int* const p2` 表示指向整型的常量指针,即指针本身不能被修改,但是指针指向的值可以被修改。例如,`p2` 指向的变量可以被修改,但是 `p2` 本身不能指向其他变量。可以用以下方式定义 `p2`:
```
int x = 10;
int* const p2 = &x;
```
需要注意的是,`const` 关键字可以放在 `*` 的左边或右边,表示不同的含义。如果放在左边,表示指向常量的指针;如果放在右边,表示常量指针。
相关问题
const int *p和int const *p有什么区别
`const int *p` 和 `int const *p` 都是指向常量整型的指针,它们的区别在于指针本身的常量性质。
`const int *p` 的意思是指针 `p` 指向的是一个常量整型变量,也就是说通过 `p` 指针是不能修改所指向的变量的值的,但是指针本身是可以修改的,即可以指向其它的常量整型变量。
而 `int const *p` 的意思是指针 `p` 本身是一个指向常量整型变量的指针,也就是说通过 `p` 指针是不能修改所指向的变量的值的,同时指针本身也是不能修改的,即不能指向其它的常量整型变量。
例如:
```
const int a = 10;
const int b = 20;
const int *p1 = &a; // 指针p1指向a常量
p1 = &b; // 正确,p1可以指向其它常量整型变量
int c = 30;
int d = 40;
int const *p2 = &c; // 指针p2指向c常量
p2 = &d; // 正确,p2可以指向其它常量整型变量
```
int my_cmp(const void* p1,const void* p2) { return *(int*)p1 - *(int*)p2; }
int my_cmp(const void* p1,const void* p2) { return *(int*)p1 - *(int*)p2; } 是一个比较函数,用于在排序时确定元素的顺序。
在这个函数中,它比较p1和p2指向的整型数据的值。如果p1指向的值小于p2指向的值,则返回一个负数;如果p1指向的值大于p2指向的值,则返回一个正数;如果p1指向的值等于p2指向的值,则返回0。这个比较函数在qsort函数中被调用,用于确定元素之间的顺序,最终实现整型数组的排序。
如果您想在自己的代码中使用这个比较函数来排序整型数组,您可以按照以下步骤进行操作:
1. 声明整型数组,并初始化数组元素。
2. 调用qsort函数,传入数组的起始地址、数组的长度、每个元素的大小以及my_cmp函数的地址作为参数。
3. 遍历排序后的数组,输出排序结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [【指针进阶(2)】||【函数指针、函数指针数组、回调函数】重点剖析+代码详解](https://blog.csdn.net/m0_57987831/article/details/118073204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [回调函数](https://blog.csdn.net/qq_45407664/article/details/102590991)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]