美文网首页
C/C++ const基本用法

C/C++ const基本用法

作者: lxr_ | 来源:发表于2018-12-27 15:22 被阅读0次

作用:

1.修饰变量,说明变量内容不可以被改变;

2.修饰指针,分为指向常量的指针,指针常量;

3.常量引用,经常用于形参类型,即避免了拷贝,又避免了对值的修改;

4.修饰成员函数,说明该成员函数不能修改成员变量。

#include<iostream>

using namespace std;

class Student

{

public:

    Student(int id = 1, int a = 2) :a(a)

    {

        id = id;

    }

    Student(int x) :a(x)

    {

        id = 0;

        //a = 0;

    }

    void Test()//普通成员函数

    {

        id = 0;

        printf("非 常成员函数\n");

    }

    void Test() const//常成员函数,不能修改类中的成员变量

    {

        //a = 1;

        //id = 0;//报错

        printf("不能修改成员变量\n");

    }

protected:

private:

    const int a;//只能在初始化列表赋值

    int id;

};

void fun()

{

    /*****************************

    //对象

    Student stu1;//普通对象,可以调用全部成员函数

    const Student stu2;//常对象,调用const版本

    const Student *p = &stu2;//常指针,调用const版本

    const Student& q = stu1;//常引用,调用const版本

    p->Test();

    q.Test();

    stu1.Test();//当const和非const都存在时,调用非const,只有其中一个时,就调用那一个

    stu2.Test();//调用常成员函数

    *******************************/

    /*****************************

    //指针

    char name[]= "xian";

    char name1[] = "aha";

    char* p1 = name;//指针变量,指向字符数组变量

    p1[1] = 'a';

    cout << p1 << endl;

    const char *p2 = name;//指针变量,指向字符数组常量

    //p2 = 'a';报错,指针指向的内容不能改变,但指针本身可以再赋值

    p2 = name1;

    cout << p2 << endl;

    char* const p3 = name;//常指针,指向字符数组变量

    //p3 = name1;报错,不能改变指针

    p3[0] = 's';

    cout << p3<<endl;

    const char* const p4 = name;

    //p4 = name1;

    //p4[0] = 's';都报错,指针和指针指向的内容都不能改变

    cout << p4 << endl;

    *******************************/

}

//函数参数

void fun1(const int val)//传递过来的参数在函数内不可变

{

    //val = 1;报错

}

void fun2(const char* val)//参数指针所指内容为常量

{

    char* name = "xian";

    val = name;

    //val[1] = 'c';报错,指针所指内容不可变

}

void fun3(char* const val)//参数指针为常指针

{

    char* name = "xian";

    //val = name;报错,指针不可变

    val[1] = 's';

}

void fun4(const int& val)//引用参数在函数内为常量

{

    int b = 0;

    //val = b;报错,不可变

}

//函数返回值

const int fun5()//返回一个常数

{

}

const int* fun6()//返回一个指向常量的指针变量,const int* p=fun6();

{

}

int* const fun7()//返回一个指向变量的常指针,int* const p=fun7();

{

}

int main()

{

    fun();

    char* p = "hello";//指向常量区,常量区的值不可以改变

    p = "123";

    char a[] = "hello";//数组为常指针,char[]等价于char const*,数组名是一个常量,不可以给 数组名赋值,但是当数组用作函数参数时会退化为指针

    //a = "23";报错

    return 0;

}

相关文章

  • C/C++ const基本用法

    作用: 1.修饰变量,说明变量内容不可以被改变; 2.修饰指针,分为指向常量的指针,指针常量; 3.常量引用,经常...

  • C++ const用法

    C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结...

  • C++ const 用法

    const修饰的是一个常量,常量的意思是不能修改该值,但是可以将常量值赋给变量。 pt是指向const单元的指针。...

  • C++ const用法

    一 修饰类 C++中const修饰类主要包括3个部分:数据成员,成员函数,对象。 数据成员const 修饰类的成员...

  • C++ const用法

    const限定符 在变量前面加上const,也可以创建一个常量。使用const创建常量的一般格式如下: 使用con...

  • C++:const用法

    在C++中用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。如果在编程中确实有某个值保持不变,也就是该...

  • const int = int const?

    根据我的了解, const 这个用法在 c++ 里非常复杂, 看完了 c++ primer 5th 里相关章节...

  • Kotlin学习笔记——基础语法篇之控制语句

    if...else... 用法 Kotlin中if...else...基本用法与C/C++,java中相同 例子 ...

  • C/C++ const用法详解

    const变量,又称为常量 1. 创建常量 const type name = value;type const ...

  • C++中const 关键字的用法(转)

    C++中const 关键字的用法 const修饰变量 const 主要用于把一个对象转换成一个常量,例如: 上面的...

网友评论

      本文标题:C/C++ const基本用法

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