关于C++与C

  • C语言是C++的基础,要能够明确的区分C与C++的内容
  • C语言中的结构体,const,运算符重载,int *xint* x的区别
  • C++面向对象要从头再学习了

C++

  • 函数之间的参数传递都是按值传递的
  • 内联函数:在编译的时候将函数体直接插入到函数调用处,避免函数调用时保存和恢复现场。不能包含复杂的控制语句。
  • 关于程序的内存区问题,在学完51单片机之后终于彻底理解了。
    1.全局/静态存储区及常量存储区,在编译时已经分配完毕
    2.栈区
    3.堆区
  • 静态全局变量对于同一个源文件中的函数是可以访问的。
  • 静态局部变量离开函数值仍保留,但不能够为其他函数引用
  • 引用是C++中新的概念
  • 程序中定义的变量在编译时被分配了内存空间,变量名也就成了相应的内存空间名称,在程序中使用名字访问该内存空间。这种按变量地址存取变量值的方式也叫做“直接访问”方式。
  • 关于int *xint* x。实际上int *x,yint* x,y就能够体现那个好一点。实际上我更倾向后一种写法,虽然在这种情况下会造成混淆。但是我觉得在函数原型中使用int fun(int* x,int* y)这样较好。
  • a[i]在编译时处理成*(a+i)
  • int (*p)[4]int *p[4]的区别:前者表示p是一个指向4个int的指针,后者是一个指针数组
  • 编译器对于字符串常量的处理,遇到字符串常量时,编译器将其放到内存data区的const区中,字符常量就变成了地址。
  • 每一个函数都占用一段内存单元,他们有一个起始地址
  • p=new int[20]int a[20]是不同的,前者是在程序运行时分配内存,而后者应当是在编译期就分配空间

你可能感兴趣的:(关于C++与C)