c复习1
文章平均质量分 80
专注就可以深
对所做的事情的理解越深,你就会做的越好。
能力是一个综合评价的词,太过虚幻无形,但技能却是可以实实在在一项一项加的。
不是你的日子悠闲,而是你还没想到可以再给自己增加什么技能。
展开
-
常量指针与指针常量的区别
常量指针与指针常量的区别(转帖)三个名词虽然非常绕嘴,不过说的非常准确。用中国话的语义分析就可以很方便地把三个概念区分开。一) 常量指针。常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。在C/C++中,常量指针是这样声明的:转载 2014-07-19 16:09:46 · 401 阅读 · 0 评论 -
内存分配方式,堆区,栈区
源自:http://www.doc88.com/p-545885979154.html转载 2014-07-20 11:22:51 · 2661 阅读 · 0 评论 -
静态数组和动态数组 内存分布
数组是程序设计中是一个非常重要的概念。数组是一个用于收集大量类似数据的容器,以及其每一个元素能被相同处理过程迭代来处理的一个抽象体。创建数组一般有三种方式:全局/静态范围的数组,局部变量数组,申请堆空间来创建数组。其中,全局/静态范围的数组,以及局部变量属于静态数组。而申请堆空间来创建数组的属于动态数组。a[7]与p1_a[7]是一样的么?静态两维数组的排列顺序转载 2014-07-23 19:50:49 · 855 阅读 · 0 评论 -
栈区和堆区内存分配区别
转自:一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况.从上图可知,程序占用的内存被分了以下几部分.1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似转载 2014-07-23 15:30:46 · 618 阅读 · 0 评论 -
预处理 之 宏定义、文件包含、条件编译
预处理总共分为三种:宏(替换)、条件bian原创 2014-07-30 00:34:09 · 1696 阅读 · 0 评论 -
一、指针到底是什么
一.指针到底是什么指针(pointer)到底是什么,弄清楚这个问题很重要,这是我们所讨论的话题的源头,而在阐述指针是什么之前,我们需要先来看一下变量的概念。我们知道,计算机的内存(primary storage)被划分为多个存储单元,这些存储单元可以以单个或者顺序相连组成一个更大单元的方式被使用。每一个单独的存储单元都是一个字节(byte),它通常由8个位(bit)组成,每一个位可以表示的转载 2014-07-19 16:31:16 · 781 阅读 · 0 评论 -
回调函数
回调即是调用者A通过调用函数B,并且给B传递一个的函数指针参数C,让B反过来调用这个又调用者指定的函数指针函参C所指向的函数,这就是回调。简单点说,回调就是将函数指针作为函数参数,函数通过这个函数指针来调用另一函数的做法,这也是函数指针的一种用法——作为函数参数。回调函数也是一个函数或过程,不过它是一个由调用方自己实现,供被调用方使用的特殊函数。回调函数可以像普通函数一样被程序调用,但是只有它原创 2014-07-30 17:09:43 · 505 阅读 · 0 评论 -
struct 结构体
结构体变量初始化:#include struct stu{int id;char name[20];char number[12];}s1 = {1,"lili","12345678901"},s5,s6={6}; //s5默认初始化,且全局的全部初始化为0 ;//s6部分初始化,剩下同数组一样的默认为0int main(void){struct stu s原创 2014-07-28 21:13:43 · 733 阅读 · 0 评论 -
static用法
1、不允许对函数形参用static修饰,因为形参是要存入栈中,而s原创 2014-07-30 17:15:08 · 619 阅读 · 0 评论 -
链表——未完
待续。。。。原创 2014-08-21 09:27:51 · 407 阅读 · 0 评论 -
enum枚举类型——基本类型
一、定义1、每个枚举成员均具有相关联的常数值。此值的类型就是包含了它的那个枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。示例enum Color: uint { Red = -1, Green = -2, Blue = -3 } 产生编译时错误,原因是常数值 -1、-2和 –3 不在基础整型 uint 的范围内。 2、枚举默认类型是int原创 2014-07-29 16:01:22 · 1704 阅读 · 0 评论 -
深入理解void类型
转自:百度文库http://wenku.baidu.com/link?url=dO5tZF2JRRc0vecNgAoC-Gj0xQqTkbH6xizGXV4rXcw6Y1XVA8w9v1Ce1HXrl6PWsqjYy1aVsA9joQ9u6vM2ZbkxDtMb55l96ynCst-JLTS标签: 空指针无类型通用指针通用排序函数教育转载 2014-07-22 16:38:14 · 582 阅读 · 0 评论 -
const 修饰符在C/C++中的作用
1.1.1. 定义普通常量const double PI = 3.1414926;const int POOL_SIZE = 20;定义常量有三种方法:宏、const、enum,其中宏应该尽量避免,而const与enum也各有优缺点,最大的区别就是enum只能用于定义整数,而不能定义浮点数;而对于定义逻辑关系较近的一组整数时比较适合使用enum,也可以考虑使用类代替enum。常量必转载 2014-07-20 11:17:23 · 597 阅读 · 0 评论 -
转移表——函数指针数组+枚举
所谓转移表就是由——回调函数、毁掉函数指针数组、枚举 三个一起完成的。原创 2014-07-30 18:29:27 · 487 阅读 · 0 评论 -
C语言位操作
C语言是一种中级语言,能对计算机硬件直接操作,这就涉及到位的概念。一、位的概念我们知道,在计算机中,一字节占8位(现在的某些电脑也有占16位的),这样表示的数的范围为0-255,也即00000000-11111111。位就是里面的0和1。char c=100;实际上c应该是01100100,正好是64H。其中高位在前,低位在后。| |第7位 第0位二、位逻辑运算转载 2014-07-28 17:17:15 · 967 阅读 · 0 评论 -
二.指针的定义及运算
二.指针的定义及运算上一讲已经说过,指针是一种变量,它也有自己的地址,但由于它是专门用来存放地址的变量,所以把它认为是种特殊的变量,既然有着特殊的身份,那么也理应受到特殊的待遇,下面来看看它享受了那些优待。1.指针的定义在C语言中,定义一个普通的变量(如整型数),我们这样做:int i; 而定义一个指针变量(指针)我们需要这样做:int *p ; 还记得吗,一个矩形中的值是有类型的,转载 2014-07-19 17:05:00 · 517 阅读 · 0 评论 -
五.指针与结构
——理解C++和数据结构的基础指针不仅可以指向变量、数组、函数,还可以和结构(structure)联系起来,这使得C语言的威力倍增,初学C语言的朋友对结构可能不太重视,对它的理解也不够深入,但事实上,结构是一个非常重要的工具,有了它我们可以很轻松的构建一些仅靠其它C语言特性做起来很复杂的程序。深入地理解结构会对你理解C++的面向对象有很大帮助,并且会让在你学习数据结构时有一份惬意的心情。(本讲转载 2014-07-20 00:39:20 · 499 阅读 · 0 评论 -
六.使用指针时的“陷阱”
转自:http://blog.csdn.net/porscheyin/article/details/3461670“C语言诡异离奇,陷阱重重,却获得了巨大成功!”——C语言之父Dennis M.Ritchie。Ritchie大师的这句话体现了C语言的灵活性以及广泛的使用,但也揭示了C是一种在应用时要时刻注意自己行为的语言。C的设计哲学还是那句话:使用C的程序员应该知道自己在干什么。有时用C写转载 2014-07-20 00:44:27 · 596 阅读 · 0 评论 -
typedef 的用法(1)
3. typedef & #define的问题 有下面两种定义pStr数据类型的方法,两者有什么不同?哪一种更好一点?typedef char *pStr;#define pStr char *; 答案与分析: 通常讲,typedef要比#define要好,特别是在有指针的场合。请看例子:typede转载 2014-07-30 11:02:02 · 365 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记(六)- 内核数据结构
《Linux内核设计与实现》读书笔记(六)- 内核数据结构转子Posted on 2013-04-16 13:21 wang_yb 阅读(1869) 评论(3)编辑 收藏内核数据结构贯穿于整个内核代码中,这里介绍4个基本的内核数据结构。利用这4个基本的数据结构,可以在编写内核代码时节约大量时间。主要内容:链表队列映射红黑树1. 链表链转载 2014-07-05 12:38:00 · 393 阅读 · 0 评论 -
对程序的磁盘映像、内存映像、地址空间的理解 ,和 ls、size 命令
转自:下午试验一个小程序来着,用到size 命令,后来发现只是一个空程序体的话,size 命令仍然显示编译出的a.out 的bss 段大小有四个字节,于是去google 了下size 命令的相关用法之类,没想到找出来一篇关于程序内存映像和磁盘映像等的不错的说明。又给自己扫盲了。一共有两个帖子觉得内容很犀利,组织一下贴过来备份下。第一个帖子详细说了可运行程序的磁盘映像、内存映像、进程地址转载 2014-08-01 17:10:29 · 1749 阅读 · 0 评论 -
三.指针与数组的“爱恨情仇”
三.指针与数组的“爱恨情仇”本将中指针的算术运算本应放在第二讲中,但考虑到它与数组关系密切故将其纳入本讲。1.指针的算术运算在上一讲指针初始化的第4种方式中提到了可以将一个T类型数组的名字赋给一个相同类型的指针,这说明指针可以和数组发生联系,在后面我们会看到这种联系是十分密切的。当有语句char ary[100] = {'a', 'b', 'c', 'd','e', 'f'}; cha转载 2014-07-19 19:56:20 · 877 阅读 · 0 评论 -
四.函数指针和指针函数
关于指针和数组斩不断理还乱的恩怨还真是说了不少,不过现在应该已经理清了。有了上一讲的基础,本讲的内容相对来说就比较容易理解了。1.指向函数的指针(函数指针)来分析这样一个声明,void (*f) ( );虽然()的优先级高于*,但由于有括号存在,首先执行的是解引用,所以f是一个指针;接下来执行( ),表明f指向一个函数,这个函数不返回任何值。现在得出结论:f是一个指向不接受参数且不返回任何转载 2014-07-19 21:30:12 · 757 阅读 · 0 评论 -
各种指针分类总结 + 指针间的赋值关系
一般指针、指针常量、常量指针、z原创 2014-07-20 14:40:08 · 5426 阅读 · 1 评论