C语言和C++语言在语法上面的部分区别:
1、C语言的定义必须在最前面,C++可以在任何地方定义,比如
for(int i=0;i<100;i++) s+=i;
在C++中是正确的,但是在C语言中是错误的
2、类型强制转换,C语言必须将类型括起来,C++可以将变量括起来。比如int(a)在C++中是正确的,但是在C语言中是错误的,必须写为(int)a
3、在VC中,int是32位的;在tc中,int是16位的。VC支持C++语法
共享群里面的上机手册中建立的文件test.cpp.
各位老师在具体作的时候可以建立.C文件取代.cpp文件。
这样子可以避免很多C和C++的区别。例如:
变量声明的位置等都和TC中的语法一样了。
一、变量声明的位置
C 中变量声明和代码是分开的,必须在函数开始处声明;
C++ 中,变量可以在任意处声明,只要保证先声名后使用的原则就可以。
二、 struct 结构体方面
1 、用 struct 定义变量
struct mystruct
{ int i;
float x;
}
在 c 中声明 struct 变量要这么写: struct mystruct a;
在 C++ 中前面不用加 struct : mystruct a;
一种兼容的用法是:
typedef struct _mystruct
{
int i;
float x;
} mystruct;
然后用 mystruct 定义变量。枚举型 (enum), 联合体类型 (union) 也是同样。
2 、在 C++ 中, struct 结构体支持成员函数的定义, C 中不行。另外要注意的是, C++ 中成员函数的默认访问说明符为 public, 这一点和类不同,类的默认访问说明符为 private.
三、 bool 类型值
C++ 中有 bool( 或 boolean 类型 );C 中可没有这样的 bool 类型,均为数值类型!需要注意的是真为非零 ( 如:1,52, - 5, - 2等 ) ,假的数值为0。
四、注释的不同
C 中的注释至有一种 ;
C++ 中的注释包含两种和 // 。
五、强制数据类型转换
C中的强制转化形式为: ( 类型 ) 变量;
C++ 中还可以使用 : 类型 ( 变量 ) 的形式。
六、赋值
C 语言中的赋值只有一中即: =;
C++ 中除了使用 = 外,还可以使用 () 。例如: int x(5) ;就等于 : int x=5; 我想这种写法是给 C++ 中对象初始化时初始化属性是对象时使用的,那么对于基本类型也可以使用了。
七、函数
1 、C语言中函数没有参数默认值,在 C++ 中函数有参数默认值的概念,注意参数默认值与函数重载的区别。
2 、 C 语言中函数的定义有两种形式,经典形式和标准形式, C++ 中只支持标准形式。
标准形式: int string(int x,float y){......}
经典形式 : int string(x,y)int x;float y;{......}
3 、 C++ 的函数必须先声名原型或定义才能使用 , 因为 C++ 是强数据类型语言 , 在 C 语言中 , 未声名和定义函数之前调用函数是允许的 .
八、运算符 & 和关键字 const
& 运算符最基本的含义是取地址, C 和C ++ 中都支持这一语法。但在 C++ 中 & 还可以表示引用。有了引用的概念后函数调用可以作为左值。例如:
int &rtux()
{
......
}
rtux()=5;
以上表达式在 C++ 中完全正确,但在 C 语言中是非法的。
const 关键字要注意一点不同的就是在 C++ 的类函数中,函数可以声名是可以用 const ,表示这个函数没有改变类中的任何属性。如: voidunchange()const;C 不能有这样的生明。
九、 extern 说明符
在 C 语言的某些版本中,可以在程序中多次使用一个全局变量而无需使用 extern 说明符。但在 C++ 中除定义全局变量外,在其他模块使用应先用 extern 生明。
十、 void 指针
在 C 语言中 void 指针可以赋给任何类型的指针,但在 C++ 中,却不行,但可以先进行强制数据类型转换,在赋值。