关闭

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

905人阅读 评论(0) 收藏 举报
分类:
//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
查看评论

C++控制变化的const

const 与基本数据类型 const int x=3;//常量,不能再对x赋值,x只能为3 const int *p=a; int const *p=a;//完全等价 const int * const p=a; int const * const p=a;//完全等价 ...
  • qq_41693486
  • qq_41693486
  • 2018-01-31 20:26
  • 25

C/C++——const用法完整总结

C/C++——const用法完整总结
  • Linux_ever
  • Linux_ever
  • 2016-05-08 10:49
  • 1657

OPENWRT学习笔记入门篇

OPENWRT入门首先,分享几个openwrt的网址:http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=4217 http://www.open-mesh.org/projects/batman-adv/wiki/Wiki...
  • yangquanhui1991
  • yangquanhui1991
  • 2015-07-30 23:38
  • 940

吴恩达深度学习笔记(四)week2深度卷积神经网络实例

吴恩达:通过学习经典网络对自己将来构建神经网络有启发性作用。经典网络 LetNet-5:主要特点是通道数增加,卷积核的尺寸下降,处理的是灰度图片。 AlexNet:结构和LetNet-5相似,但是网络要大很多,处理的是彩色图片。 VGG-16:卷积核和通道数都以一定规律变化,连接也不...
  • lwmiracle
  • lwmiracle
  • 2017-12-05 15:20
  • 110

C++学习笔记之const

在c语言中,通过const修饰的变量(常量不能被直接修改),但是可以通过找到其地址,通过指针对其修改,因此可以认为c中的const是个假的。而在C++中,一旦经过const修饰的变量(常量),就不能被修改。int main(void)//c程序 { const int num = 5; //nu...
  • u011883562
  • u011883562
  • 2016-11-18 10:43
  • 44

C++中”const“关键字使用详解

关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,现将本人的一些体会总结如下,期望对大家有所帮助:一 const基础    如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:   &...
  • ArduousBonze
  • ArduousBonze
  • 2007-05-15 13:43
  • 2394

C++:const和引用

上面一篇博客我们已经介绍了基本的const,对于这篇博客,我先说下引用是什么 引用说白了就是为对象另外起了一个名字,引用类型引用另一种类型。 定义方式: 将声明符写成&d的形式来定义引用类型其中d是声明的变量名, int size = 100; int ...
  • lishuzhai
  • lishuzhai
  • 2016-01-28 18:24
  • 2256

C++类const成员变量初始化

class CExample { public: CExample():m_a(1),m_b(2){/*m_a = 1; compile error*/} CExample(const CExample&c):m_a(1){/*m_a = 1; compile error*/} ~CE...
  • junlon2006
  • junlon2006
  • 2016-11-08 16:37
  • 1599

c++ const常量的实现机制

const关键字的基本思想就是将一个变量变成常量,试图从语言设计者的角度去分析引入该关键字的动机。 我猜测原因如下: 1)提醒程序员,某些值是常量,如PI。或该值在程序运行期间是不变的,防止程序员误修改。对于多模块开发,头文件引用复杂的系统来说,这是很重要的,如果不能在编译期阻止常量被误修改,那...
  • GSYzhu
  • GSYzhu
  • 2012-11-30 15:07
  • 4255

关于C++ const 的全面总结 取代#define

关键字const叫做限定符,因为它限定了声明的含义 一种常见的做法是将名称的首字母大写(例如:Month),已提醒是常量 另一种约定是将整个名称大写 ####################################################################...
  • u012005313
  • u012005313
  • 2015-07-07 15:00
  • 1019
    个人资料
    • 访问:1598160次
    • 积分:29154
    • 等级:
    • 排名:第211名
    • 原创:1387篇
    • 转载:21篇
    • 译文:8篇
    • 评论:220条
    Social NetWork
    博客专栏
    最新评论