首页 > 分享 > c语言中const关键字的作用,以及const同指针的常见组合方式(附测试代码)

c语言中const关键字的作用,以及const同指针的常见组合方式(附测试代码)

第一次写博客,可能排版没那么好,也不知道会不会有读者,权当给自己看吧先,如果有读者那就再好不过了

const关键字

const关键字常见的三大类使用情景:

情景一:定义常量

       型如int const a=100;//这样定义的目的经常是为了定义一个全局性的、值不能被改变的“常量”,作用类似于# define MAX 100

       还有另一种定义格式:

                         const int a=100;

      这两种方法时完全等同的

总结一般情况:type const name=value;或者const type name=value;这两种都是可行的,但是一般推荐使用第二种情况

情景二:const同指针的搭配使用

       const同指针搭配通常有三种常见的形式:

            1、const int *p1;//const限制的是*p1,*p1的值不能改,也就是*p3不能再次赋值,下同,但p1可以改
            2、int const *p2;//const同样限制的是*p2,*p2的值不能改,但是p2可以改
            3、int *const p3;//const限制的是p3,p3指向的地址不能改,*p3可以改

看到这里,也许很多新手小白已经懵了,那么怎么记住这三种情况的区别呢?

        这里有一个小诀窍:我们注意到,第一种和第二种的const后面跟的是*p,第三种const关键字后面跟的是p,所以这里就可以得到区别了,const后跟*p的,*p的值不能改,也就是*p存储的内容不能改;const后跟p的,p指针所指的地址不能改。如此而已

如果有兴趣,可以用我的代码跑一下:

#include<iostream>
using namespace std;
int main()
{
    int a=100;
    int b=101;
    int const *p1=&a;//*p1不能变
    int *const p2=&a;//p2不能变
    const int *p3=&a;//*p3不能变

    cout<<"p1地址是:"<<p1<<";*p1是:"<<*p1<<endl;
    cout<<"p2地址是:"<<p2<<";*p2是:"<<*p2<<endl;
    cout<<"p3地址是:"<<p3<<";*p3是:"<<*p3<<endl;

    p1=&b;
    *p2=b;
    p3=&b;
    cout<<"p1地址是:"<<p1<<";*p1是:"<<*p1<<endl;
    cout<<"p2地址是:"<<p2<<";*p2是:"<<*p2<<endl;
    cout<<"p3地址是:"<<p3<<";*p3是:"<<*p3<<endl;

    return 0;

}

情景三:函数形参中const和指针的搭配使用

       在情景一中已经说了,const用来定义变量的方式等同于用define定义全局变量,所以,const的优势没有显现出来,有一种情况可以显示const的优势,那就是函数形参用const限定:

       如果形参是一个指针,因为通常不加const的情况下,我们可以在函数内部改变*p的值(假设函数形参是*p)。为了防止在函数内部修改指针指向的数据,也就是*p的值被改动,或者程序员在函数体内对函数误操作,就可以用 const 来限制,此时的const作用和情景二的作用是一样的,只不过是用在了函数中。

相关知识

C语言之正确使用const
C语言中
C语言中对于char*p = “Hello”的理解
圣诞节代码html飘雪花
编码规范参考
嵌入式笔试试题6篇(全文)
C语言玫瑰花代码/源码免费复制/炫酷红玫瑰
vs水仙花数c语言代码,求水仙花数c语言代码怎么写
c语言实现玫瑰花(代码)
入门c语言(二)

网址: c语言中const关键字的作用,以及const同指针的常见组合方式(附测试代码) https://m.huajiangbk.com/newsview730785.html

所属分类:花卉
上一篇: 廊坊花店订花免费代写祝福语!
下一篇: ​福州茉莉花茶养生之道