C与C++比较—基础篇

一、const 关键字

在C与C++中,const关键字均将其所修饰的变量视为常量,但对于指针赋值中,C中允许将const指针赋给非const指针,C++中不允许const指针赋给非const指针。

举个例子:

1)在C语言中

int a = 5;
const *p = a;
int * q ;
q = p;
*q = 3;
printf("%d\n",*p);//*p的值被修改成了3 所以最终const限制了个寂寞

2)在C++中

int a = 5;
const *p = a;
int * q ;
q = p;//C++中这里不允许赋值,p是const指针,q是非const指针,所以无法赋值
*q = 3;
printf("%d\n",*p);

二、malloc 和 free 关键字

1)在C语言中,动态开辟内存使用的是malloc,回收内存用的则是free

int *a = malloc( sizeof(int) );
free(a);

2)在C++中,使用new关键字开辟内存,用delete关键字回收内存,同样,C++可以兼容C中的malloc和free关键字,但是更为严格,例如malloc返回的void*类型,在C++中需要强制转换才能使用,否则会报错。

char* ch = (char*)malloc(sizeof(char));  //强制类型转换

三、bool 类型

1)C语言中,不支持bool类型,一般利用返回值为 0 和 非0 来判断真假,也可以通过宏定义 #define 和 枚举类型 enum 来实现

#define FALSE 0
#define TRUE  1

typedef enum BOOL{
  FALSE,TRUE
}Bool;

2)C++中提供了对bool类型的支持,bool 类型提供了 false 和 true 两种返回值

四、String

C语言中不支持String,一般需要用数组或动态开辟空间来存放字符,C++中提供了对于String的支持。

五、枚举 enum

C语言中的枚举enum 可以使用整形数值,即enum 类型中对应变量表示的数值内容

C++中不允许使用数值类型直接赋值枚举类型enum ,必须使用在enum定义的范围之内

#define FALSE 0
#define TRUE  1

typedef enum BOOL{
  False,TRUE
}Bool;

Bool reselt = 1; //在C语言中,这是可以的,但是在C++中不允许

六、表达式

在C语言中,表达式可以赋值给变量,但是数值不能赋值给表达式

在C++中,以上C语言中的限制就不存在了

int a = 10;
int b = 10;
(a = b) = 100;//C语言中是不可以的

七、输入输出

C语言中使用Scanf,Printf进行输入输出

C++中使用Cin, Cout进行输入输出

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值