那些你可能不会注意的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是一个新类型的定义声明。
s truct 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++更强调类型,任意的程序元素都必须显示指明类型




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值