C++对C的升级

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引用一经初始化不能再引用其他变量,而指针可以。
今天先讲这么点,以后补充
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值