是小狐狸啊
2016-06-14 15:18
采纳率: 63.6%
浏览 3.0k
已采纳

C++ 在形参里加const有什么意义?

/*在形参里加const有什么意义吗?是不是代表这个参数不能在函数里被修改?那为什么在下面的程序中,在print函数输出的还是修改后的对象呢?望大神们指点迷津!谢谢!*/

#include <iostream>
#include"string.h"
using namespace std;

    struct Student{
        char name[20];
        unsigned int id;
        char sex;
        unsigned short age;
    };

    void print(const Student &stu)//加不加const的区别在哪?
    {
        cout<<stu.name<<endl;
        cout<<stu.id<<endl;
        cout<<stu.sex<<endl;
        cout<<stu.age<<endl;
    }

    void set(Student &stu)
    {
        strcpy(stu.name,"Jane Green");
        stu.id=1;
        stu.sex='F';
        stu.age=20;
    }

    int main(int argc, char* argv[])
    {
        Student a={"John Smith",2,'M',21};
        set(a);
        print(a);
        return 0;
    }
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

  • 无语_ 2016-06-14 16:10
    最佳回答

    你说对了一半,具体说的是不能在你在该变量前加了const的函数内被修改,你const加在输出函数上,又不是在set函数里,当然可以被修改啊,其实你想的是另外一种东西,const常量定义,比如const int N=10,这个确实在任何地方都不可以修改,把const引用参数和const常量定义搞清楚就好

    评论
    解决 3 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题