c++中的const

1.类是一个数据类型,定义一个类是一个抽象的概念,编译器不会再定义类的时候为你分配内存,只有在用类定义变量的时候才给你分配内存。

2.类把属性和方法进行了一个封装。

3.封装继承和多态

4.struct类型加强:在c语言中不认为struct是一种新的数据类型,c++中struct和class可以实现相同的功能

struct Teacher

{  

    char name[20];

     double score;

};

c:struct Teacher t1;

c++:Teacher t1;

5.c++中的所有变量和函数都要有类型,c语言中默认类型在c++中不合法。

g( )

{

return 4;

}

//在c语言中可以,在c++中不可以

6.c++中新增的数据类型:bool类型(true:1)

void main()
{//数据类型的本质是固定大小的内存单元
	bool a = true;
	cout << sizeof(a)<<endl;//1
	a = 10;
	cout << a;//1
	system("pause");

}

7.三目运算符功能增强:在c语言中,表达式返回的是一个值,在c++中,表达式返回的是一个变量。

要想当左值,返回值要返回一个内存空间(内存首地址,指针)。

int a=10;

int b=20;

(a<b?a:b)=30;

c中是:10=30;

c++中是:a=30;

8.const的不同:

  c:是修饰指针本身,还是修饰指针所指向的内存空间                      

                      (1).  int const b;//指针所指向的内存空间不能被修改

                                 const int *c;

                                  const int b;

                      (2).int * const d;//修饰指针变量本身,所以指针变量的指向不能被修改

c++中const是常量,c中const是一个冒牌货


9.const 和define的相同之处:#define在编译预处理阶段处理

const常量是由编译器处理的,提供类型检查和编译器检查

#define d 20
void main()
{
	int a = 10;
	int b = 20;
	int array1[a + b];//Linux内核里面是成立的,因为编译Linux内核的
	//gcc编译器支持,但是c和c++编译器不支持
	const int c = 10;
	//const int d = 10;
	int array2[c + d];//c++编译器也可以通过

}


10.

//const定义的变量,由编译器处理,提供类型检查和作用域检查
void fun1()
{
#define a 10
	const int b = 10;
//#undef a//a的作用域到此结束
//#undef//所有的define作用域都到此结束
}
void fun2()
{
	printf("%d\n", a);
	printf("%d\n", b);//报错,因为const的原因,将b的作用域限制在fun1()
}
void main()
{
	fun1();
	fun2();
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值