C语言基础
tiemaxiaosu
这个作者很懒,什么都没留下…
展开
-
C语言基础--静态存储和动态存储
一、存储方式 变量从变量值存在的时间(即生存期)角度分:静态存储方式和动态存储方式。静态:由系统分配固定的存储空间,全局变量就存储在静态存储区。动态:系统根据需要进行动态的分配存储空间。在动态存储区存放一下数据:(1)、函数形式参数; (2)、自动变量(未加static声明);(3)、函数调用时的现场保护和返回地址;原创 2016-06-30 13:54:18 · 1685 阅读 · 0 评论 -
typedef 和define 的区别
一、区别 typedef和define都可以用来给对象取一个别名,但是两者却有着很大不同。1、二者执行时间不同 关键字typedef在编译阶段有效,由于是在编译阶段,因此typedef有类型检查的功能。 define则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字符串替换,而不进行任何检查。 #d原创 2016-07-13 21:00:54 · 351 阅读 · 0 评论 -
函数形参中指针的指针
一、指针的指针 int *pi; int **ppi; //这是一个指向指针的指针,注意有两个*号 ppi=π 解释:int **ppi;--申明了一个指针变量ppi,这个ppi是用来存储(或称指向)一个int * 类型指针变量的地址。 &pi那就是取pi的地址,ppi=π就是把pi的地址赋给了ppi。即将地原创 2016-07-13 20:23:19 · 1035 阅读 · 0 评论 -
指针函数与函数指针的区别
一、指针函数 指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针。 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。表示: fl原创 2016-07-13 17:14:04 · 254 阅读 · 0 评论 -
指针数组和数组指针区别
一、区别指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4] 指针数组 表示:数组a中的元素都为int型指针 元原创 2016-07-13 14:59:31 · 288 阅读 · 0 评论 -
快速排序
一、算法介绍 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一趟快速排序的算法是: (1)、设置两原创 2016-07-13 10:08:11 · 209 阅读 · 0 评论 -
内存泄露
1.内存泄露的定义内存泄漏(memory leak)指:由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。一般我们常说的内存泄漏是指:堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显式释放原创 2016-06-30 22:27:55 · 467 阅读 · 0 评论 -
堆排序
一、简介 堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。 (1)用大根堆排序的基本思想 ① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区 ② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此原创 2016-07-12 22:53:11 · 307 阅读 · 0 评论 -
C语言基础
1、strlen和sizeof的区别? sizeof运算符:是求字节运算符,用于计算运算对象在内存中所占字节的多少。 strlen是函数:求字符串的长度,以\0为结束。2、结构体中占用内存的字节数?原创 2016-06-30 14:33:44 · 236 阅读 · 0 评论 -
C语言基础--指针数据类型
一、指针类型原创 2016-06-30 14:11:18 · 589 阅读 · 0 评论 -
typedef 的四个用途和两个陷阱
一、四个用途用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写原创 2016-07-13 22:07:14 · 459 阅读 · 0 评论