Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520180
  • 博文数量: 257
  • 博客积分: 1666
  • 博客等级: 上尉
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 23:02
文章分类

全部博文(257)

文章存档

2013年(2)

2012年(255)

分类:

2012-08-06 12:53:29

原文地址:C/C++ 部分区别 作者:BlackwingZH

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语言的超集,虽然C++兼容C,但是C++中也有与C语言中不兼容的地方。
一、变量声明的位置
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,表示这个函数没有改变类中的任何属性。如:void unchange()const;C不能有这样的生明。
九、extern说明符
在C语言的某些版本中,可以在程序中多次使用一个全局变量而无需使用extern说明符。但在C++中除定义全局变量外,在其他模块使用应先用extern生明。
十、void指针
在C语言中void指针可以赋给任何类型的指针,但在C++中,却不行,但可以先进行强制数据类型转换,在赋值。

阅读(267) | 评论(0) | 转发(0) |
0

上一篇:Linux 那些事[1]

下一篇:c字符串处理函数

给主人留下些什么吧!~~