将博客搬至CSDN
本文转自:http://www.cnblogs.com/li-hao/p/4107964.html 一、 概论每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.连接器有个默认的内置连接脚本,
2.在C语言中struct有了自己的含义,虽然在C++中扩展成了类,但一般情况还是遵循C中的用法3.C++一般情况下用class来做类的关键字声明4.继承是C++中代码复用的方式,通过继承,在子类中可以使用父类中的代码5.子类可以完全继承父类中所有的变量和函数,在可以使用父类的地方就可以用子类代替6.子类从概念上而言是一种特殊的父类7.类和分出来的类之间的关系叫:继承,拥有原来类的全部属性,类之间
const7.C++编译器对const常量的处理 (1)当碰见常量声明时在符号表中放入常量 (2)编译过程中若发现使用常量则直接以符号表中的值替换 &nb
1.线性表是零个或多个数据元素的集合2.线性表中的数据元素之间是有顺序的3.线性表中的数据元素个数是有限的4.线性表中的数据元素的类型必须相同5.定义:线性表是具有相同类型的n个数据元素的有限序列6.性质: a0为线性表的第一个元素,只有一个后继
1.数据的特点:可以输入到计算机,可以被计算机程序处理2.数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型。如:int float char等等3.数据元素-组成数据的基本单位,数据项:一个数据元素由若干数据项组成4.数据对象 —性质相同的数据元素的集合5.数据元素之间不是独立的,存在特定的关系,这些关系即结构6.数据结构指数据对象中数据元素之间的关系,编写一个“好”的程序之前,必须分
1.程序=数据+算法;C语言=数据+函数;模块化程序设计;2.面向过程是一种以过程为中心的编程思想3.首先将复杂的问题分解为一个个容易解决的问题4.分解过后的问题可以按照步骤一步步完成5.函数是面向过程在C语言中的体现6.解决问题的每个步骤可以用函数来实现7.程序中的声明可以理解为预先告诉编译器实体的存在,如:变量,函数,等等8.程序中的定义明确指示编译器实体的意义声明和定义并不相同extern&
1.野指针通常是因为指针变量中保存的值不是一个合法的内存地址而造成的2.野指针不是NULL指针,是指向不可用内存的指针3.NULL指针不容易用错,因为if语句很好判断一个指针是不是NULL,C语言中没有任何手段可以判定一个指针是否为野指针4.(1)局部变量没有被初始化(2)使用已经释放后的指针(3)指针所指向的变量在指针之前被销毁.5.结构体成员指针未初始化6.没有为结构体指针分配足够的内存7.内
1.栈是先入后出,2.栈保存了一个函数调用所需的维护信息,函数参数,函数返回地址,局部变量,函数调用上下文。没有栈就没有函数,没有局部变量。3.栈保存了一个函数调用所需的维护信息(函数参数,函数返回值地址,局部变量,函数调用上下文)4.栈上的数据在函数返回后就会被释放掉,无法传递到函数外部5.堆是程序中一块巨大的内存空间,可由程序自由使用6.堆中被程序申请使用的内存在程序主动释放前将一直有效7.堆
1.C语言中的一切操作都是基于内存的2.变量和数组都是内存的别名,如何分配这些内存由编译器在编译期间决定,定义数组的时候必须指定数组长度,而数组长度是在编译期就必须决定的需求:程序运行的过程中,可能需要使用一些额外的内存空间。malloc和free用于执行动态内存分配和释放。1.malloc所分配的是一块连续的内存,以字节为单位,并且不带任何的类型信息2.free用于将动态内存归还系统注意:1.m
1.C语言中函数有自己特定的类型2.函数的类型由返回值,参数类型和参数个数共同决定3.C语言中通过typedef为函数类型重命名4.函数指针用于指向一个函数5.函数名是执行函数体的入口地址6.可通过函数类型定义函数指针:Func Type* pointer7.也可以直接定义:type (*pointer)(parameter list) pointer为函数指针变量名,type为指向函数的返回值类
1.C语言中只会以值拷贝的方式传递参数2.当向函数传递数组时,将数组名看做常量指针传数组首元素地址3.二维数组参数同样存在退化的问题,二维数组可以看做是一维数组,二维数组中的每个元素是一维数组4.二维数组参数中第一维的参数可以省略5.C语言中无法向一个函数传递任意的多维数组6.为了提供正确的指针运算,必须提供除第一维之外的所有维长度7.限制:一维数组参数-必须提供一个标志数组结束位置的长度信息&n
1.指针变量在内存中会占用一定的空间2.可以定义指针来保存指针变量的地址值3.指针在本质上也是变量,对于指针也同样存在传值调用与传址调用#include <stdio.h> #include <malloc.h> int reset(char**p, int size, int new_size) {
1.C语言中的数组有自己特定的类型2.数组的类型有元素类型和数组大小共同决定3.C语言中通过typedef为数组类型重命名typedef type(name)[size]; 数组指针1.数组指针用于指向一个数组2.数组名是数
1.从概念上讲,C语言中没有字符串数据类型2.在C语言中使用字符数组来模拟字符串3.C语言中的字符串是以‘\0’结束的字符数组4.C语言中的字符串可以分配于栈空间,堆空间或者只读存储区5.字符串的长度就是字符串所包含字符的个数6.C语言中的字符串长度指的是第一个‘\0’字符前出现的字符个数7.C语言中通过‘\0’结束符来确定字符串的长度注意:strlen返回数为无符号数,两个无符号数相减依然为无符
1.数组的本质是一段连续的内存空间2.数组的空间大小为sizeof(array_type)*array_size3.数组名可看做指向数组第一个元素的常量指针4.指针是一种特殊的变量,与整数的运算规则为:p+n;=(unsigned int)p+n*sizeof(*p);结论:当指针p指向一个桶类型的数组的元素时;p+1将指向当前元素的下一个元素;p-1将指向当前元素的上一个元素。5.指针
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号