C 真的可以看做是 C++ 的子集吗
搜了一下,答案是:基本上可以这么认为,但是在一些细节上并不兼容
图片源自网络
1. void*类型
在C语言中,void*(空指针)可以隐式转换为任何指针类型,但在C++语言中不合法
2. 字符字面值
在C语言中,字符字面值是int类型,而在C++语言中,字符字面值是char类型
3. 字符串字面值
这是一个很常见的错误,在C语言中,字符串字面值是char[N]类型,而在C++语言中,字符串字面值是const char[N]类型
4. C++ 多了一些关键字
C++多了很多关于面向对象的内容,与之一道多了很多关键字(如class,public等)
使用这些词汇作为变量名的 C 程序无法在 C++ 中成功编译
评论
GiscusTwikoo