美文网首页
const在C语言上的定义和用法

const在C语言上的定义和用法

作者: 蔡俊宇 | 来源:发表于2017-11-05 11:02 被阅读8次

我们经常可以在函数接口参数位置看到有const关键字,但是这个关键字到底有什么作用呢?其实const关键字的作用主要是看它在 * 号的左边还是右边。

如果 const 是在 * 号的左边,主要表示的是指向的内存空间内容不能够随意修改;如果 const 是在 * 号的右边,主要表示的是指向的,代表了常量指针,其内容可以修改,但是指针指向的目标内存是不能够修改的;如果*号左右都有指针的话,便说明,指针指向和内容都不能够修改。

举例说明:

int getStr(const char* p1){
    //此处const的作用是p1所指向的内存空间不能够随意修改
    //p1[0] = 'a';
    p1 = 0x1;
    p1 = 0x2;
    return 0;
    
}
int getStr2( char* const p1){
    //此处const的作用是指针p1是一个常量,指向的地址可以随意修改,但是指针不能改动
    p1[0] = 'a';
//    p1 = 0x1;
//    p1 = 0x2;
    //p1++;
    return 0;
    
}
int getStr3(const char* const p1){
    //指针和指针地址都不能够随意修改
//    p1[0] = 'a';
    //    p1 = 0x1;
    //    p1 = 0x2;
    //p1++;
    return 0;
    
}

int main(int argc, const char * argv[]) {
    
     system("pause");
    
    return 0;
}

思考:为什么int a[10]是一个常量?

int a[10];
    // a++; 报错
    int *p = a;
    p++;

    system("pause");

    return 0;
}

因为C++编译器要拿着a去析构内存,不能让你随意改变指针的指向。

相关文章

  • const在C语言上的定义和用法

    我们经常可以在函数接口参数位置看到有const关键字,但是这个关键字到底有什么作用呢?其实const关键字的作用主...

  • #define和const

    c语言只有#define,c++可以用#define和const来定义常量。const比#define更具优势。 ...

  • const 宏 static extern

    IOS 基础-define、const、extern、全局变量 const 与 宏的区别 : C语言宏高级用法 [...

  • c语言const用法

    在C语言中const的用法用在普通变量上,以为这个变量是常量,值不可被修改,就像下面一样 这两个的定义一样。 co...

  • 编程基础

    C语言 #define定义的宏和const定义的常量有什么区别? defined定义宏的指令,程序在预处理阶段将用...

  • const用法总结

    const概述 const是指使用C和C++中常见关键字,在C语言中,主要用于定义变量为常类型以及修饰参数与返回值...

  • C/C++ Const 小知识

    Const Const 特点 [描述] 在 C、C++、D 和 JavaScript 编程语言中,const是一个...

  • Go语言常量和输入输出

    常量 Go语言常量和C语言差不多Go语言定义常量const不能少,数据类型可以不写Go语言定义常量不能用:=Go语...

  • 一、C++中的const、define

    C 语言中 在C语言中,const是个假语法,const 中的变量可以通过指针修改,例如: C++中 const ...

  • C++ const 分析

    1、C语言中的const: const修饰的变量是只读的,本质还是变量 const修饰的局部变量在栈上分配空间 c...

网友评论

      本文标题:const在C语言上的定义和用法

      本文链接:https://www.haomeiwen.com/subject/imycmxtx.html