编写一个在C++中无法编译的C程序
在这里,我们将编写一些在C++中无法编译的C程序。尽管C++被认为是C的继承者,它拥有C的所有特性并兼容C代码,但有些程序在用C++编译器编译时无法编译或会报错。
一些在C++中无法编译的C程序的列表如下:
在声明之前调用函数 - 在C++中,在声明之前调用函数会产生编译错误。但在C中可以正常工作。
示例
#include <stdio.h>
int main(){
printHello();
return 0;
}
void printHello(){
printf("TutorialsPoint");
}输出
TutorialsPoint
使用类型转换指针 - 如果我们在C中声明一个void指针,然后使用此指针指向其他数据变量。编译器本身可以在C中做到这一点,但在C++中,这些指针需要进行类型转换。
示例
#include <stdio.h>
int main(){
void *ptr;
int *ptr2 = ptr;
return 0;
}声明常量值而不初始化 - 在C中,可以声明常量值而不为其提供任何值,但在C++中这样做会返回错误。
示例
#include <stdio.h>
int main(){
const int x;
printf("%d", x);
return 0;
}输出
0
使用普通指针与const变量 - 在C++中不允许这样做,而C允许使用普通指针与const变量。
示例
#include <stdio.h>
int main(void){
int const x = 3424;
int *cptr = &x;
printf("value of pointer : %d\n", *cptr);
return 0;
}输出
Value of pointer: 3424
使用特定关键字作为变量名 - 在C编程语言中,使用某些关键字作为变量名是有效的,即在C中可以编译,但在C++中却不能编译。
示例
#include <stdio.h>
int main(void){
int class = 5;
printf("%d", class);
}输出
5
这些关键字包含在C++中,还有一些是新的,例如new、delete、explicit等。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP