c++对c语言的加强

4 篇文章 0 订阅
本文探讨了C++中const变量的严格限制,如不可通过指针修改,以及C++变量定义的灵活性。此外,文章还比较了C++与C在函数(如内联函数和函数模板)和结构体(成员函数支持)方面的进步。C++新增的bool类型和严格类型转换也是亮点。
摘要由CSDN通过智能技术生成

1、const增强

C语言中const修饰的变量为常变量,但是可以通过指针间接来修改。但是在c++中不可以通过指针来间接修改,在c++中const修饰的常变量与c中const修饰的常变量存储的位置不一样。

#include<stdio.h>
int  main()
{
	const int a=10;
	int *p=&a;
	*p=30;
	printf("%d",a); 
	return 0; 
}

c语言运行结果如下:
在这里插入图片描述c++编译过程会出错
在这里插入图片描述
注意:上述两个编译运行的环境不一样,一个是在c环境下,一个是在c++环境下。

2.变量的定义更灵活

c语言所以变量定义必须在最前面,所以起来很不方便,但是c++可以实现变量的边使用边定义功能,非常方便。

3.函数的增强

在c++中增加了内联函数,默认参数,函数重载,函数模板等概念。

4.结构体的增强

c中定义结构体变量需要加上struct关键字,c++不需要。
c中的结构体只能定义成员变量,不能定义成员函数。c++即可以定义成员变量,也可以定义成员函数。

5.增加了bool类型

早期c语言没有bool类型,用非0表示真,0表示假
c++有新增加bool类型。
bool类型只有两个值,true(1值),false(0值)
bool类型占1个字节大小
给bool类型赋值时,非0值会自动转换为true(1),0值会自动转换false(0)
c语言中的bool类型
c语言中也有bool类型,在c99标准之前是没有bool关键字,c99标准已经有bool类型,包含头文件stdbool.h,就可以使用和c++一样的bool类型。

6.语法更严格

严格的类型转换
在C++,不同类型的变量一般是不能直接赋值的,需要相应的强转。
但是在C语言中有些却可以直接赋值,比如:

int* p = malloc(10);//C语言可以
int* p = malloc(10);//C++语言不可以
int* p = (int *)malloc(10);//C++语言不可以

变量类型要求
在C语言中,int fun() 表示返回值为int,接受任意参数的函数,int fun(void) 表示返回值为int的无参函数。
在C++ 中,int fun() 和int fun(void) 具有相同的意义,都表示返回值为int的无参函数。

7.字符串的处理方法

C语言用字符数组存放字符串,并在此基础上进行字符串运算。
c++除了用上述方法外,还提供了一种更方便,更安全的方法。c++提供了一种新的数据类型-string类型,但是在使用时要加上

#include<string>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@菜鸟一枚

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值