C/C++
阳光正温暖~
这个作者很懒,什么都没留下…
展开
-
C++预处理、宏
一、C++编译过程从C++源文件到可执行文件的编译过程,有如下几个步骤,g++提供了很多编译选项,可以让我们控制整个编译过程:预处理(g++选项 -E):预处理就是本文要详细说的宏替换、头文件包含等,结果直接输出到控制台编译 (g++选项 -S):编译是指对预处理后的代码进行语法和语义分析,最终得到汇编代码或接近汇编的其他中间代码,结果保存为.s文件汇编 (g++选项 -c):汇编是指将上一步得到...原创 2017-05-24 11:15:21 · 980 阅读 · 0 评论 -
C++:引用、指针与const
1. 引用引用即绑定到另一个对象上,因此定义了一个引用,对其操作即是对与之绑定的对象进行操作(如为引用赋值,获取引用的值,以引用作为初始值...)。定义引用时是绑定对象,因此必须在定义引用同时必须初始化。引用本身不是对象,只是另一个对象的别名,因此不能定义引用的引用,也不能定义引用的指针。引用本身非对象,因此不能进行赋值和拷贝,一旦定义了引用,其只能绑定这个对象,无法再绑定别的对象。但一个对象可以...原创 2017-03-08 15:33:56 · 371 阅读 · 0 评论 -
C++:函数
函数基础函数:是一个命名了的完成特定功能的代码块,通过调用函数执行相应的代码。函数:返回类型、函数名、形参列表、函数体。函数声明返回类型 函数名 (形参列表)定义及编写函数:编写函数时形参列表需要注意以下两点每个形参都要含有一个声明符的声明,即使两个形参的类型一样,也不能省略类型声明;形参和实参的数量必须一致,即使调用时不使用某个形参,也需要为它提供一个实参。调用并执行函数:调用时可以使用函数或...原创 2017-02-20 22:04:56 · 279 阅读 · 0 评论 -
传值、传指针与传引用
概念指针:指针本质上就是一个变量,是一个存放其他变量地址的变量,在逻辑上是独立的,和普通的变量没什么区别。就内存的分布来说,指针变量和任何普通变量在内存中存放是没有任何区别的,无非指针变量内部存放的是其他变量的地址而已。指针变量的特殊之处在于指针变量的内容(即值)为其他变量的地址,同时指针的初始化(以地址初始化)和解引用等不同的操作方式而已。引用:引用是一个别名,它在逻辑上不是独立的,它的存在具有...原创 2017-09-20 16:29:22 · 1122 阅读 · 0 评论 -
C - 动态内存分配
一、总体概括在《进程地址空间》:http://blog.csdn.net/kyang_823/article/details/78109448中,已经学会了进程地址空间及内存分配方式:堆段、栈段、数据段。动态分配即是在堆段中分配内存:在分配中完全由程序员进行申请多大内存和内存的free释放,动态内存分配的生存期完全由程序员决定,也是程序员唯一能自由分配的内存区,使用非常灵活,使用的好坏直接决定系统...原创 2017-10-08 12:21:35 · 613 阅读 · 0 评论 -
进程地址空间、程序启动、函数调用
进程地址空间操作系统在管理内存时,每个进程都有一个独立的进程地址空间,这个进程地址空间的地址为虚拟地址,对于32位操作系统,该虚拟地址空间为2^32=4GB。进程在执行的时候,看到和使用的内存地址都是虚拟地址,而操作系统通过MMU部件将进程使用的虚拟地址转原创 2017-09-27 09:40:44 · 954 阅读 · 0 评论 -
typedef用法及注意
一、复杂的变量声明1)C++保留字是分析复杂声明和定义时的基本,由保留字结合基本知识(模板、符号等)得到哪些是类型名称,哪些是变量名称...注意:也可以得出变量的 最根本的性质。比如:const int * i; i位变量名,从右向左读,先是* ,所以i 最根本为指针,再是int,即i 为指向int类型的指针,再是const,修饰整个之前的类型,所以即修饰根本上的指针。2)C++ 复杂声明分析理解...原创 2017-05-21 21:12:00 · 1636 阅读 · 0 评论 -
this指针
首先,类是一种抽象数据类型,也是一种数据类型,因此this指针即是指向 “调用成员函数的类对象” 的指针,解引用即得到指针指向的类对象。只要类对象调用一个成员函数,编译器即会自动用该对象的地址初始化this指针,因此在成员函数内部,可以直接使用“调用该成员函数的类对象”的成员,而无需再使用成员访问运算符。//成员函数定义sales_data& sales_data::combine(co原创 2017-03-15 10:59:41 · 242 阅读 · 0 评论