C++与C的差异分析
C++ 分析 差异
2023-06-13 09:15:42 时间
虽说C++是向后兼容C的,但C++与C还是存在许多差异。本文列举了几个例子加以说明,同时这些也是我们非常容易忽略的地方。本文仅简单的列举几例,更多的不同之处读者还需要在学习与实践中不断的进行发掘和总结。
C编译通过但C++编译不通过:
1、
#include<stdio.h>//请用gcc和g++分别进行编译 intmain() { foo();//foo()在它的声明/定义之前被调用 } intfoo() { printf("Hello"); return0; }
2、
#include<stdio.h>//请用gcc和g++分别进行编译 intmain() { intconstj=20; /*C++编译会报错,C中编译会有warning,但可以通过*/ int*ptr=&j; printf("*ptr:%d\n",*ptr); return0; }
3、
#include<stdio.h>//请用gcc和g++分别进行编译 intmain() { void*vptr; int*iptr=vptr;//C++中必须用int*iptr=(int*)vptr; return0; }
C和C++输出结果不相同:
4、
#include<stdio.h>//请用gcc和g++分别进行编译 intmain() { printf("%d",sizeof("a")); return0; }
5、
#include<stdio.h>//请用gcc和g++分别进行编译 intT; intmain() { structT{doublex;}; printf("%d",sizeof(T));//C输出4,C++输出8 return0; }
6、
#include<stdio.h>//请用gcc和g++分别进行编译 intmain() { printf("%d\n",sizeof(1==1));//C输出4,C++输出1 return0; }
本文仅对C++与C的差异做一个简单的分析与总结,相信对于大家更好的理解C与C++起到一定的帮助作用。
相关文章
- C++多态之析构和纯虚析构分析与示例
- C++文件读写操作分析文本文件与二进制文件
- 深入理解C11/C++11内存模型(白嫖新知识~)
- C++项目贪吃蛇游戏笔记-需求文档
- c++中map遍历_怎么遍历map集合
- EasyC++14,枚举值的使用
- C++读写文件操作(fstream、ifstream、ofstream、seekg、seekp、tellg、tellp用法)[通俗易懂]
- C++ 友元函数
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- c++中delete什么意思_delete和delete()
- C/C++ 常用加解密算法收集
- C/C++ 简易异或加密的分析
- C/C++ 程序反调试方法总结
- 【C++修炼之路】3. 类和对象(中)
- 【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 获取 tombstone_0X 崩溃日志信息 )
- 【Windows 逆向】CheatEngine 工具 ( 汉化版 CE 工具推荐 | 编写简单 C++ 程序 | C++ 程序执行分析 | 使用 CE 修改上述 C++ 程序 )
- C++ 左值和右值
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法详解编程语言
- 关于C++中虚拟继承的一些总结分析
- C++中引用(&)的用法与应用实例分析
- C++中共用体的定义与应用总结
- C++空类及没有成员变量的类的大小实例分析
- C++遗传算法类文件实例分析
- VC++的if语句应用范围分析
- C++变位词问题分析
- C++类基本语法实例分析