编写一个程序,在C和C++中产生不同的结果

编写一个程序,编译和运行C和C++,但产生不同的结果时,编译的C和C++编译器。

null

有很多这样的项目,下面是其中的一些。

1) 字符文字在C和C++中被不同对待。在C语言中,像‘a’、‘b’、。。ETC被当作整数,而作为C++中的字符。(见 (详情请参阅)

例如,下面的程序在C中生成siZoof(int)作为输出,而C++中生成siZoof(char)。

#include<stdio.h>
int main()
{
printf ( "%d" , sizeof ( 'a' ));
return 0;
}


2) 在C语言中,每当我们声明一个结构变量时,我们都需要使用struct标记。在C++中,结构标记不是必需的。例如,假设有一个 大学生 .在C中,我们必须使用’ 体类型 “因为 大学生 变量。在C++中,我们可以省略结构和使用 大学生 “只是。 下面是一个基于事实的程序,在C和C++中产生不同的输出。它在C和Sigeof(StRet T)中用C++打印SigeOf(int)。

#include <stdio.h>
int T;
int main()
{
struct T { double x; }; // In C++, this T hides the global variable T,
// but not in C
printf ( "%d" , sizeof (T));
return 0;
}


3) 布尔结果的类型在C和C++中是不同的。感谢Gaurav Jain提出这一点。

// output = 4 in C (which is size of int)
printf ( "%d" , sizeof (1==1));
// output = 1 in c++ (which is the size of boolean datatype)
cout << sizeof (1==1);


本文由 阿比拉蒂 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享