c++和c的注意点和不同点:
来源:互联网 发布:算法中log2是什么意思 编辑:程序博客网 时间:2024/06/04 17:46
c++和c的注意点和不同点:
1.所有变量的声明C++在使用处声明,而C需要在函数开始声明。例如:for(int i=0;i<10;i++)//C语言中是错误的
2.对用宏定义C++可以多行,而C很多编译器不支持多行,即不支持/符号。
3.C++支持更为丰富的类型转化方式,而C只能做强制类型转化。
4.C++对const的使用十分广泛且有效,而C对const使用受到限制,如无法用在中间变量声明。
5、C、C++数组初始化:
Int a[5] = {0}; 将全部元素初始化为0,而
Int b[5] = {1}; 仅仅将第一个元素初始化为1,而将其余n-1个元素初始化为0;
Int c[] = {1,2,3,4,5};自动使得数组长度为5.
一维数组初始化:
char data[]={'a','b','c','d','e'};
二维数组初始化:
char data[][4]={{'a','b'},{'1'},{'2'},{'3'}};
二维字符串数组初始化:
const char* BCDCode[] = {"0000","0001","0010", "0011","0100","0101","0110","0111","1000","1001","1010"};
[]要在变量BCDCode后面,而Java可以在BCDCode前面和后面
6、C++函数中值的传递方式
有三种方式:值传递(Pass by value)、指针传递(Pass by pointer)、引用传递(Pass by reference)
void fun(char c) //pass by value
void fun(char *str) //pass by pointer
void fun(char &str) //pass by reference
如果输入参数是以值传递的话,最好使用引用传递代替,因为引用传递省去了临时对象的构造和析构
函数的类型不能省略,就算没有也要加个void
7.在C++中,struct结构体支持成员函数的定义,C中不行。
另外要注意的是,C++中成员函数的默认访问说明符为public,这一点和类不同,类的默认访问说明符为private。
在定义结构体变量时,C中必须使用struct关键字,而C++不需要。
8. C++中增加了基本数据类型bool(或boolean类型);C中没有这样的bool类型,均为数值类型!
需要注意的是真为非零(如:1,52,-2等),假的数值为0。
9. 注释的不同: C中的注释只有一种 /*......*/; C++中的注释包含多行注释“/*......*/”和单行“//”两种。
10. 强制数据类型装换:C中的强制转化形式为:(类型)变量; C++中还可以使用:类型(变量)的形式。
例如:(int)a;或写成:int(a); C++中都可以。
11. 初始赋值: C语言中的赋值只有一中(复合赋值除外),
即:“=”; C++中除了使用“=”外,还可以使用()。•例如:int x(5);等效于: int x=5;
13.运算符&和关键字const: &运算符最基本的含义是取地址,C和C++中都支持这一语法。但在C++中&还可以表示引用。
有了引用的概念后函数调用可以作为左值。例如:• int &rtux() { ...... }• rtux()=5;• 以上表达式在C++中完全正确,
但在C语言中是非法的。•在C++的类函数中,函数可以声名是可以用const,表示这个函数没有改变类中的任何属性。如:void Print()const;C不能有这样的声明。
14. void指针:在C语言中void指针可以赋给任何类型的指针,但在C++中,却不行,但可以先进行强制数据类型转换,再赋值。
例如:•int *p; void *q=NULL; p=q; //C中允许•int *p; void *q=NULL; p=(int*)q; //C++中必须强制转换
15.c++引入了面向对象的概念,类和对象在才c中没有。
0 0
- c++和c的注意点和不同点:
- C++和C的不同点
- C和C++的一些不同点
- C #与C++的相同点和不同点
- Swift和Objective-C的相同点和不同点
- String-StringBuffer-StringBuilder使用不同点和注意点
- c风格字符串和string使用的一些注意点
- C/C++ 中重要的概念和注意点。
- c标准文件io函数的原型和注意点
- C/C++编程的常识和注意点(不断更新)
- C&C++(2) - void*在C和C++中的不同点
- C++ 和 Java 的相似点和不同点
- C语言中,#include <>和#include ""的区别和注意点
- JAVA 和 C/C++ 中 string 的区别和注意点
- c 的一些注意点
- C语言的注意点
- P_Skip, B_Skip and B_Direct 之间的相似点和不同点
- Java与C的不同点
- “占中”激起民怨 香港旅行社和餐厅向发起人索赔
- hibernate的事务和spring事务的区别
- Linux关于snmp的防火墙设置
- Java 中 Vector、ArrayList、List 使用深入剖析(转)
- 实现BASE64加密、解密算法
- c++和c的注意点和不同点:
- JniHelper
- 遇见C++ AMP:GPU的线程模型和内存模型
- int、bigint、smallint 和 tinyint (Transact-SQL)
- 小波变换和motion信号处理(三)
- Delphi TStream,TMemoryStream,TFileStream等 详细介绍
- Presto:Facebook的分布式SQL查询引擎
- 保持宽高比缩放的算法
- 一切为了SVM