C++学习笔记3 C语言到C++的升级

  • C与C++的关系:
     C++继承了所有的C特性
     C++在C的基础上提供了更多的语法和特性
     C++的设计目标是运行效率与开发效率的统一
  • C++对C的加强:
  •      1:C++中更强调语言的“实用性”,所有的变量都可以在需要使用时
    再定义。
  •     注意:
    C语言中的变量都必须在作用域开始的位置定义!!

 

  •     2:register关键字的变化
     register关键字请求“编译器”将局部变量存储于寄存器中
         • C语言中无法取得register变量地址
     在C++中依然支持register关键字
         • C++编译器有自己的优化方式,不使用register也可能做优化
          • C++中可以取得register变量的地址
         早期C语言编译器不会对代码进行优化,因此
         register变量是一个很好的补充。
         C++编译器发现程序中需要取register变量的地
        址时,register对变量的声明变得无效。

 

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

 

  • C++编译器对const常量的处理
     当碰见常量声明时在符号表中放入常量
     编译过程中若发现使用常量则直接以符号表中的值替换
     编译过程中若发现对const使用了extern或者&操作符,则给
    对应的常量分配存储空间
    注意:
    C++编译器虽然可能为const常量分配空间,
    但不会使用其存储空间中的值。

C语言中的const变量
 C语言中const变量是只读变量,有自己的存储空间
 C++中的const常量
 可能分配存储空间
• 当const常量为全局,并且需要在其它文件中使用
• 当使用&操作符取const常量的地址

 

 

C++中的const小结
 C++中的const常量类似于宏定义
const int c = 5; ≈ #define c 5
 C++中的const常量在与宏定义不同
• const常量是由编译器处理的,提供类型检查和作用域检查
• 宏定义由预处理器处理,单纯的文本替换

 

 

struct类型的加强:
 C语言的struct定义了一组变量的集合,C编译器并不认为这
是一种新的类型
 C++中的struct是一个新类型的定义声明

   struct Student{

const char* name;

int age

};

Student s1;

Student s2;

在C语言当中编译不会通过,因为C编译器并不认为这是一种新的类型。

 

 

 C++中所有的变量和函数都必须有类型
 C语言中的默认类型在C++中是不合法的

f(i)

{

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

}

g()

{

return 5;

}

这样的代码在C编译器中可以通过,在C++中不能通过,C语言当中的默认类型在C++中不合法。

在C语言当中,g()可以有很多参数

在C语言中
 int f();表示返回值为int,接受任意参数的函数
 int f(void);表示返回值为int的无参函数
在C++中
 int f();和int f(void)具有相同的意义,都表示返回值
为int的无参函数

 

C++以C语言为基础进行了加强
 C++更强调实用性,可以在任意的地方声明变量
 C++中的register只是一个向后兼容的作用,C++编译器能够进行
更好的变量优化
 C++中的const是一个真正意义上的常量,而不是只读变量
 C++更加强调类型,任意的程序元素都必须显示指明类型

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值