摘要: 7-4-1指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str,200)并没有使str获得期望的内存,str依旧是NULL,为什么?void GetMemory(char *p, int num){p = ... 阅读全文
posted @ 2014-10-02 23:03 chrispauls 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 局部变量func(){int a;int b=0;}很多书籍中也叫自动变量,它声明在函数块内,作用范围也在函数块内。 不能被同一源文件的其他函数使用,也不能被其他文件中的函数使用。局部变量存储在栈中。无论局部变量显示初始化(如b),或者未初始化(如a),都只有当定义它们的程序块被调用时(即执行时),... 阅读全文
posted @ 2014-10-02 15:04 chrispauls 阅读(158) 评论(0) 推荐(0) 编辑
摘要: int main() { int arr[] = {6,7,8,9,10}; int *ptr = arr; *(ptr++) += 123; printf("%d ,%d/n",*ptr,*(++ptr));... 阅读全文
posted @ 2014-10-02 14:31 chrispauls 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不... 阅读全文
posted @ 2014-10-02 14:03 chrispauls 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不... 阅读全文
posted @ 2014-10-02 14:03 chrispauls 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是... 阅读全文
posted @ 2014-10-02 13:59 chrispauls 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define... 阅读全文
posted @ 2014-10-02 13:32 chrispauls 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#defin... 阅读全文
posted @ 2014-10-02 13:32 chrispauls 阅读(124) 评论(0) 推荐(0) 编辑
摘要: ANSIC的,如果认为malloc(0)是语法错误的话,下面我写的就不用看了。 下面进入正题,关于malloc(0)这个问题,我在网上看到有个面试题好像就是问这个的,原题好像是:char*ptr; if((ptr=(char*)malloc(0))==NULL)puts("Gotanullpoint... 阅读全文
posted @ 2014-10-02 13:23 chrispauls 阅读(137) 评论(0) 推荐(0) 编辑