关于C++与C

作者: GodsLeft | 来源:发表于2015-04-01 23:20 被阅读206次
    • 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

        本文链接:https://www.haomeiwen.com/subject/eljoxttx.html