那些你可能不会注意的C+细节


希望我总结的这些知识点能帮到大家。

一.实用性增强

1.c语言中的变量都必须在作用域开始的位置定义。

2.c++中更强调语言的“灵活性”,变量什么时候需要什么时候定义。

二.register关键字增强

1.register关键字,请求编译器让变量a直接放在寄存器里面,速度快。

2.c++可以取寄存器变量的地址,而c不能。

3.register 关键字请求“编译器”将局部变量存储于寄存器中。

4.c+编译器发现程序需要取寄存器变量地址时,register对变量的声明变得无效。

5.例子:

int main()

{

register int a=0;

printf("&a=%x\n",&a);

system("pause");

}

三.函数检测增强

1.在c语言中,允许重复定义全局变量,多个重名的全局变量最终会被链接到全局数据区的同一个地址空间上。2.c+中直接拒绝这种二义性。

四.struct类型增强

1.c中struct定义了一组变量的集合,c编译器并不认为这是一种新的类型2.在c+中,struct是一个新类型的定义声明。struct Student{  char name[100];  int age;};//定义了一组变量的集合int main(int argc,char *argv[]){Student s1={"wang",1};Student s2={"wang2",2};//struct为一种新类型的定义声明。
system("pause");}

五.c++中所有的变量和函数都必须有类型

例子:

f(i) //参数没有类型,函数没有返回值,c+编译不会通过

{

  printf("%d \n",i);
}

g()

{

  return 5;

}

int main(itn argc,char *argv[])

{

 f(10);

printf("g()=%d\n",g(1,2,3,4,5));//在c中,可以接收任意个参数

getchar();
}

*总结

在c语言中,

int f();表示返回值为int,可以接收任意个参数

int f(void);表示返回值为int的无参函数。

在c+语言中,int f()和int f(void)具有相同的意义,都表示返回值为int 的无参函数

*****c++更强调类型,任意的程序元素都必须显示指明类型




智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告