栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

C++对C语言的增强

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++对C语言的增强

C++对C语言的增强 1、全局变量检测增强

C语言代码:

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

int main(){
	printf("a:%dn",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的内容过多,我放置下篇文章中了。

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038124.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号