/****************************************************************
这是看了唐老师的C++视频后的学习笔记,记录自己每天的进步!
***************************************************************************//
一.C++是C语言为基础,支持面向对象的,强类型,函数加强,异常加强。
1. C++语言中,所有变量都可以在需要用时再进行定义,比较方便。
C语言的变量必须在作用域的开始进行定义。
2. register关键字的变化。
register关键字请求“编译器”将局部变量存储于寄存器中。
C++中也支持register关键字,但C++编译器中有自己的优化方式。
3. C++中不允许定义同名变量。
4.C++中的const
C语言中的const变量是只读变量,有自己的存储空间。
C++的const可能分配存储空间
当const常量为全局,并且需要在其他文件中使用。
当使用&操作符去const常量的地址。
#include <stdio.h>
int main(int argc, char** argv)
{
const int c = 10;
int *p = (int *)&c;
*p = 5;
printf("%d \n",c);
return 0;
}
输出结果为:10
C++中的const常量类似于宏定义。 const int c = 5; define c = 5;
C++中的const常量与宏定义不同。
C++中的const常量由编译器处理,提高类型检查和作用域检查。
宏定义由预处理器处理,单纯的文本替换。
5.C++中struct类型的加强。
C语言中struct认为定义一组变量的集合,c编译器并不认为这是一种新类型。
C++中的struct是一种新类型的声明。
#include <stdio.h>
struct Student
{
const char* name;
int age;
};
int main(int argc, char** argv)
{
Student s1 = {"Delphi", 30};
Student s2 = {"Tang", 30};
printf("Press enter to continue ...");
getchar();
return 0;
}
6. C++中所有变量和函数必须有类型。
int f(); int f(void)具有相同的意义,都表示返回为int的无参数类型。