首页 > 编程 > C++ > 正文

C++对C的升级

2019-11-11 03:55:32
字体:
来源:转载
供稿:网友
1.声明和定义我们在c语言中,通常把变量的声明放在文件开头,即所有要用到的变量统一定义,而在c++中,我们可以把变量的定义放在快要用到的时候,例如,for语句,在c中我们是int i = 3;for(i = 0; i < 3; i++){}而在c++中,我们可以for(int  i = 0;i < 3; i++ )2.register 关键字的升级在C语言中,register的作用是修饰一个变量,该变量经常被程序访问,所以希望把该变量放在寄存器中,减少程序访问该变量需要的时间,大大提高程序运行效率,因为是放在寄存器中,而&是得到内存的地址,所以在C语言中,我们是无法对一个用register修饰的变量进行取地址操作的,但在c++中,我们是可以的,因为编译器会优化该变量,将变量重新放回到内存中。3.const关键字c语言中,我们用const修饰的叫做只读变量,readonly,即我们不能通过变量名对空间的值进行修改,但是空间对应的值是可以修改的,比如下面这个例子const int num = 3;我们不能  num++;但是我们可以通过下面方法实现num自加int * ptr = &num;(*ptr)++;这个时候打印num的值会发现num++而在c++中我们是无法这样做的,用const修饰后他就是一个常量,因为在c++中,编译器要求做到const的对应,如果你之前用const修饰的变量num,之后要用指针指向这个地址的话就必须用const*,所以地址对应的值就无法变化了。4.new/delete  内存的分配与释放在c语言中,我们是用malloc进行内存的分配,例如char * ptr = (char *)malloc(sizeof(char) *100);释放的时候,我们用free ptr;而在c++中,我们是char * ptr = new char [100];用delete []ptr来释放;动态内存分配的区别{new以具体类型为单位进行内存分配,malloc只能以字节为单位进行分配new关键字是c++的一部分,malloc是由c库提供的函数new申请单个类型变量的时间进行初始化}当我们申请二维数组时,我们需要如下操作int (*pp)[2] = new int [2][2];5.引用引用时c++提出的一个新的概念,他比指针安全而且使用简单。我们使用引用时一定要初始化,这是跟指针差不多的。指针和引用的区别:1.引用访问一个常量是直接访问,而指针是间接访问2.引用是一个变量的别名,本身不单独分配自己的内存空间,但是指针有自己的空间3引用一经初始化不能再引用其他变量,而指针可以。今天先讲这么点,以后补充
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选