C++对C 的加强

1.C++中变量可以在使用的时候在定义,比较典型的应用就是for循环

for(int i = 0; i < N; i++) //循环变量i在使用时定义,c++中支持,c语言不支持,i的作用域仅在for循环中

2.register关键字

register关键字请求编译器将局部变量存储于寄存器中;

c语言中不能取register变量的地址,地址是在内存中的位置,不是寄存器中的位置。

c++中可以取register变量的地址,编译器当发现程序中取register变量的地址时,register对变量的声明变得无效。

3.const关键字

在c语言中 const修饰的变量不能称为常量,只能叫只读变量,可以取得变量的地址,通过地址间接地改变它的值;所以在只能使用常量的地方,不能使用const修饰的变量,比如case之后,数组的下标等。

c++中,const修饰的量为常量,C++编译器碰见常量声明在符号表中放入常量,编译过程中,若发现使用常量则直接以符号表中的值替换。若发现对const使用了extern或&操作符,则给对应的常量分配存储空间,但是不会使用其存储空间中的值。

利用下面的程序分别建立C工程和C++工程,会发现在C工程中const变量的值可以改变,在c++中const常量的值不能改变。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
	const int c = 9;
	int *p = (int *)&c;
	
	printf("begin...\n");
	
	*p = 5;
	
	printf("c = %d\n", c);
	
	printf("end...\n");
	return 0;
}
4.struct类型

在c语言中,struct定义了一组变量的集合,C编译器并不认为这是一种新的类型。

c++中,struct是一个新类型的定义声明。如下的代码片段在c工程中会编译出错,在C++中编译成功。

struct Student{
	const char * name;
	int age;
};
Student s1;
Student s2;

5.C++中所有变量和函数必须要有类型,不接受默认类型。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值