C和C++的区别(含常见笔试面试题)

一、第一个C++程序1、文件扩展名 .cpp .cc .C .cxx2、编译器 g++ 大多数系统需要额外安装,ubuntu系统下的安装命令: sudo apt-get update sudo apt-get install g++ gcc也可以继续使用但需要增加参数 -xC++ -lstdc++3、头文件 #include <iostream> #include <stdio.h> 可以继续使用 #include <cstdio> 也可以使用
摘要由CSDN通过智能技术生成

**

一、第一个C++程序

**
1、文件扩展名
.cpp .cc .C .cxx
2、编译器
g++ 大多数系统需要额外安装,ubuntu系统下的安装命令:
sudo apt-get update
sudo apt-get install g++
gcc也可以继续使用但需要增加参数 -xC++ -lstdc++
3、头文件
#include
#include <stdio.h> 可以继续使用
#include 也可以使用
4、输入/输出
cout << 输出数据
cin >> 输入数据
cout/cin会自动识别类型,不需要占位符。
scanf/printf可以继续使用
注意:cout和cin是标准库类对象,而scanf/printf是标准库函数。
5、增加了名字空间
std::cout
using namespace std;
所有的标准类型、对象、函数都位于std命令空间中
**

二、C++中与C不同的数据类型

**
①、C++的结构
1、不再需要 typedef ,在定义结构变量时,可以省略 struct 关键字。
2、成员可以是函数(成员函数),在成员函数中可以直接访问成员变量,不需要.或->,但是C的结构成员可以是函数指针。
3、有一些隐藏的成员函数(构造、析构、拷贝构造、赋值构造)。
4、可以继承,可以设置成员的访问权限,(面向对象)。

②、C++的联合
1、不再需要 typedef ,在定义联合变量时,可以省略 union 关键字。
2、成员可以是函数(成员函数),在成员函数中可以直接访问成员变量,不需要.或->。
3、有一些隐藏的成员函数(构造、析构、拷贝构造、赋值构造)。

③、C++的枚举
1、不再需要 typedef ,在定义联合变量时,可以省略 enum 关键字。
2、使用方法与C语言基本一致,但类型检查比C语言更严格。

④、C++的布尔类型
1、C++具有真的布尔类型,bool是C++中的关键字,在C语言中使用布尔类型需要导入头文件stdbool.h。
2、在C++中 true false 是关键字,而在C语言中不是。
3、在C++中 true false 是1字节,而在C语言中是4字节。

⑤、C++的void*
1、C语言中void* 可以与任意类型的指针 自动转换(万能指针)。
2、C++void不能给其它类型的指针直接赋值,必须强制类型转换,但其它类型的指针可以自动给void赋值。
3、C++为什么这样修改void*?
为了更安全,所以C++类型检查更严格。
C++可以自动识别类型,对万能指针的需求不再那么强烈。

⑥、C++的字符串
1、C++的字符串被封装成了string类,但可以与C中的字符串进行转换(c_str成员函数)。
2、需要string头文件,但已经被包含在iostream中,被定义在std名字空间中。
3、常见的字符串操作不再需要函数,可以使用运算符,如:=、==、!=、+=,
4、计算长度使用它的成员函数size。

**

三、名字空间

**
1、为什么需要名字空间
在项目中函数名、全局变量、结构、联合、枚举、类,非常有可能名字冲突,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值