一.何为抽象? 从小到大,我们接触到的抽象,最熟悉的莫过于数学了.为什么这样说呢? 比如说,在小学的时候,老师总是拿了几个苹果来引诱我们:同学们,这里有几个苹果啊?于是我们流着口水一个个地数,一个苹果,两个苹果,三个苹果,然后说三个苹果!第二回,老师又拿了三只葡萄来引诱我们:同学们,这里有几只葡萄啊?于是我们又一只只数过来:一只葡萄二只葡萄三只葡萄,三只葡萄!第三天,老师又拿了三颗糖果来问我们:同学们,这里有几颗糖果啊?我们又数开了:一颗糖果,两颗糖果,三颗糖果!回答:三颗糖果.  每一次老师拿…
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21551397 | http://www.hanshuliang.com/?post=29 . 1. C语言命令行参数详解 命令行参数 : 有两个参数 int argc 和 char **argv; -- argc : 标示输入的参数个数, 注意命令本身也是参数; -- argv : 指向 字符串数组的指针, 每个字符串是一个参数; -- 约定 : ar…
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21551397 | http://www.hanshuliang.com/?post=29 . 1. C语言命令行参数详解 命令行参数 : 有两个参数 int argc 和 char **argv; -- argc : 标示输入的参数个数, 注意命令本身也是参数; -- argv : 指向 字符串数组的指针, 每个字符串是一个参数; -- 约定 : ar…
指针函数:本质是一个函数: 是一个返回指针类型的函数int * sum(){ } 函数指针:本质是一个指针: 是一个指向函数的指针 int (*p)(int,int) = sum; p(5,6); int sum(int a,int b){ } 指针数组:数组内存储的都是指针 int *p[2]; int a = 20; int arr[5]={9,8,7,6,5}; int *ppp = arr;int *pp = &a; p[0]=ppp; p[1]=pp; 有了以上概念,我们可以尝试编写一…
. 作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行的操作 : 结构体可以进行 拷贝 赋值操作, 可以作为 函数参数 和 函数返回值; 1. 结构体的基本使用 结构体声明 : struct 结构标记 {结构成员} 普通变量; -- 结构体示例 : struct student { char *name; int age; }; -- 结构标记 : s…
#include <stdio.h> #include <stdlib.h> #define PINT int * typedef short* PSHORT; //typedef不是像宏一样简单的进行替换 这样定义的别名会作用与后出现的所有变量 int main2() { ; ; PINT pa1,pa2; PSHORT pb1,pb2; pa1 = &a; //pa2 = pa1;// warning C4047: "=":"int&quo…
2010年的最后一天了,转载一篇自己认为还不错的文章与大家分享.希望对大家有所帮助. 一,回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理.用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢? 使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数. 而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利…
记得刚开始工作时,一位高手告诉我说,longjmp和setjmp玩得不熟,就不要自称为C语言高手.当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法.后来明白那不单是跳来跳去那样简单,而是一种高级的异常处理机制,在某些情况下确实很有用. 事实上,longjmp和 setjmp玩得熟不熟与是不是C语言高手,不是因果关系.但是,如果可以套用那位高手的话,我倒想说如果函数指针玩得不熟,就不要自称为C语言高手.为什么这么说呢,函数指针有那么复杂吗?当然不是…
1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: A) char * (*fun1)(char * p1,char * p2); B) char * *fun2(char * p1,char * p2); C) char * fun3(char * p1,char * p2); 看看上面三个表达式分别是什么意思? C)这很容易,fun3是函数名,p1,p2是参数,其类型为char *型,函数的返回值为char *类型.B) 也很简单,与C)表达式相比,唯…
函数指针在C++中有着重要的应用,函数的函数名其本质就是代表一个地址,这个地址叫做函数入口,得到这个地址就可以对这个函数进行各种操作. 函数类型基础 函数三要素: 名称.参数.返回值 C语言中的函数有自己特定的类型 C语言中通过typedef为函数类型重命名,类似于定义数组 typedef type name[m];//定义数组类型 typedef type name(parameter list)://定义函数类型 typedef int f(int, int); typedef void p…