C++学习笔记之---控制变化的const

来源:互联网 发布:网络主持人特点 编辑:程序博客网 时间:2024/05/18 01:10
//const与基本数据类型//const与指针类型#include <iostream>using namespace std;int main(){const int x = 10;//x = 20;             此处会报错!!!const修饰其值改变不了return 0;}int main(){//1.const int *p = NULL;  与 int const *p = NULL等价int x = 3, y = 4;const int *p = &x;p = &y;//此处正确//*p = 4;此处为错误的//2.int *const p = NULL;int *const p = &x;//p = &y;                   此处报错//3、const int * cont p = NULL;const int *const p = &x;//此处改变不了的return 0;}



例子:

#include <iostream>using namespace std;int main(){const int x = 3;x = 5;int x = 3;const int y = x;y = 5;int x = 3;const int * y = &x;*y = 5;int x = 3, z = 4;int *const y = &x;y = &z;const int x = 3;const int &y = x;y = &z;return 0;}

结果如图:


具体请查看错误信息:





代码如下:


#include <iostream>using namespace std;int main(){const int x = 3;x = 5;return 0;}

结果:



#include <iostream>using namespace std;int main(){int x = 2;int y = 5;int const *p = &x;cout<<*p<<endl;p = &y;cout<<*p<<endl;return 0;}


#include <iostream>using namespace std;int main(){int x = 2;int y = 5;int const &z = x;z = 10;             //会报错x = 11;return 0;}


//函数使用const


//函数使用const#include <iostream>using namespace std;void fun(int &a, int &b){a = 10;b = 22;}//函数有问题//不能赋值/*void fun1(const int &a, const int &b){a = 33;b = 44;}*/int main(){int x = 2;int y = 5;fun(x, y);cout<<"函数没有const修饰的结果是: "<< x <<" , "<< y <<endl;/*int v = 3;int w = 4;fun1(v, w);cout<<"函数没有const修饰的结果是: "<<v<<" , "<<w<<endl;*/return 0;}



如果上例代码的注释去掉就会出现如下错误信息:





0 0
原创粉丝点击