const修饰指针

简介: const修饰指针
  • const int *p:*p是常量
  • int * const p:p是常量

注意:const和int的位置可以互换

#include <iostream>
void test1(){
    int i1 = 30;
    int i2 = 40;
    /**1、首先const修饰的是整个*pi,所以*pi是常量
     * 2、其次,pi前并没有const修饰,所以pi是指针变量,能被重新指向另一个内存地址
     * */
    const int *pi = &i1;
    //1、不可
    //*pi = i2;
    //2、可
    pi = &i2;
    //可
    i2 = 80;
    printf("%d/n", *pi);
}
void test2(){
    int i1 = 30;
    int i2 = 40;
    /**
     * 1、pi有const修饰,所以只是一个指针常量;也就是说pi的值不可以修改
     * 2、*pi的前面没有const的修饰,也就是说,*pi是变量而不是常量
     * 总结:这次的pi是一个指向int变量类型数据的指针常量
     * */
    int *const pi = &i1;
    //1、不可
    //pi = &i2;
    i1 = 80;
    //2、可
    *pi = 160;
    printf("%d/n", *pi);
    //int const * const p = &i1;
}
int main() {
    ///const int 和 int const是一样的,两个顺序可以颠倒
    ///但是const int *pi 和 int *const pi是不一样的
    test1();
    test2();
    return 0;
}



目录
相关文章
|
2月前
|
C++
C++中的const指针与const引用
C++中的const指针与const引用
39 2
|
2月前
|
安全 编译器 C语言
深入了解C++:形参、内联、重载、引用、const和指针、new和delete
深入了解C++:形参、内联、重载、引用、const和指针、new和delete
27 1
|
2月前
|
存储 C语言
【C语言】const修饰指针的不同作用
【C语言】const修饰指针的不同作用
26 0
|
2月前
|
存储 C语言 索引
指针详解(const、指针运算、数组名的理解、传址调用和传值调用、一维数组的本质​)(一)
指针详解(const、指针运算、数组名的理解、传址调用和传值调用、一维数组的本质​)(一)
|
2月前
|
编译器 C++
C++ 中 const 和 constexpr 关键字解析:常量、函数和指针
很多 C++ 的初学者看到 const 这个关键字的第一反应都是一头雾水,主要是因为 const可 以出现在很多的位置,以及后面加入的 constexpr 更是常常感到困惑,今天就为大家一一解释出现它们的含义和以及作用
124 0
|
11天前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
6天前
|
搜索推荐 程序员 C语言
指针赋值与引用传递:C语言的基础知识与实践技巧
指针赋值与引用传递:C语言的基础知识与实践技巧
|
11天前
|
C语言
指针进阶(回调函数)(C语言)
指针进阶(回调函数)(C语言)
|
11天前
|
存储 C语言 C++
指针进阶(函数指针)(C语言)
指针进阶(函数指针)(C语言)
|
11天前
|
编译器 C语言
指针进阶(数组指针 )(C语言)
指针进阶(数组指针 )(C语言)