【C++第一课】-C到C++的升格
【C++第一课】---C到C++的升级C到C的升级:那么到底在哪些地方做了升级呢?1.所有变量都可以在使用的时候进行
【C++第一课】---C到C++的升级
C到C++的升级:
那么到底在哪些地方做了升级呢?
1.所有变量都可以在使用的时候进行定义,这个是C所不允许的;
C语言规定所有变量都必须在作用域开始进行定义.
例如:
const int i = 0;int *p = &i;*p = 5;printf("*p = %d \n", *p);printf("i = %d \n", c);
上面输出值分别是什么呢? 可以上机测试.
稍作解释:
a.在C++中const修饰的才是真正意义上的常量,编译器会在符号表中记录i这个变量,当你下次使用到c的时
候,他会自动在符号表中取这个值,二而不管你的变量内存值是否改变.
b.如果编译器遇到对const常量使用了extern或者&操作符,那么则会给对应的常量分配空间.
然后,关于const常量和宏定义的区别
const常量是由编译器处理的,提供类型检查和作用域检查;
宏定义是由预处理器处理的,只做单纯的文本替换.
5.struct类型的加强
C语言中对struct并不认为是一种新的类型,C语言中也不可能产生新的类型
但是在C++中,struct会被解析成一种新的类型.
6.类型
C++中所有变量和函数都 "必须" 有类型
C语言中默认的类型是int,可以缺省.
可以看出C++更强调类型,所有元素以及函数返回值都必须显示的指明类型.