C++对C语言的增强

C++对C语言的增强

1、全局变量检测增强

C语言代码:

int a = 10; //赋值,当做定义
int a; //没有赋值,当做声明

int main(){
	printf("a:%d\n",a);
	return EXIT_SUCCESS;
}

此代码在c++下编译失败,在c下编译通过.

2、函数检测增强 ,参数类型增强,返回值检测增强,函数调用参数检测增强

C语言代码:

int space(w, h) // 形参没写类型;
{
}  // 没有返回值
void test02()
{
	space(10, 10, 10); //形参与实参数量没有对应
}

此代码在c++下编译失败,在c下编译通过.

3、类型转换检测增强

在C++,不同类型的变量一般是不能直接赋值的,需要相应的强转。

C语言代码:

char * p = malloc(sizeof(64)); //malloc返回值是void*

C++代码:

char * p = (char*)malloc(sizeof(64)); //malloc返回值是void*,加上强转

4、struct类型加强

        4.1、c中定义结构体变量需要加上struct关键字,c++不需要。

        4.2、c中的结构体只能定义成员变量,不能定义成员函数。c++即可以定义成员变量,也可以定义成员函数。

C++代码:

struct Person {
	int m_Age;
	void plusAge() {
		m_Age++;
	}; //c++中struct可以加函数
};

void test04() {
	Person p1; //使用时候可以不加struct关键字
	p1.m_Age = 10;
	p1.plusAge();
	cout << p1.m_Age << endl;
}

5、 bool类型增强 C语言中没有bool类型

        5.1、作用:布尔数据类型代表真或假的值 

        5.2、bool类型只有两个值:

                 true  --- 真(本质是1)
                 false --- 假(本质是0) 

                注:给bool类型赋值时,非0值会自动转换为true(1),0值会自动转换false(0)       

         5.3、bool类型占==1个字节==大小**

C++代码:

int main() {

	bool flag = true;
	cout << flag << endl; // 1

	flag = false;
	cout << flag << endl; // 0

	flag = 100;
	//bool类型 非0的值 转为 1  ,0就转为0
	cout << flag << endl;


	cout << "size of bool = " << sizeof(bool) << endl; //1
	
	system("pause");

	return 0;
}

[c语言中的bool类型]

c语言中也有bool类型,在c99标准之前是没有bool关键字,c99标准已经有bool类型,包含头文件stdbool.h,就可以使用和c++一样的bool类型。

6、三目运算符增强

        6.1、c语言三目运算表达式返回值为数据值,不能赋值。

void test06()
{
	int a = 10;
	int b = 20;

	printf("ret = %d \n", a > b ? a : b);

	//a > b ? a : b = 100; // 20 = 100 C语言返回的是值

}

        6.2、c++语言三目运算表达式返回值为变量本身(引用),可以赋值。

void test06() {
	int a = 10;
	int b = 20;

	cout << "ret = " << (a < b ? a : b) << endl;

	(a < b ? a : b) = 100; //b = 100 C++中返回的是变量

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
}

由于C/C++中的const的内容过多,我放置下篇文章中了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值