sdkdlwk的博客

日积月累,定能滴水穿石

C语言中堆和栈的区别

C语言中堆和栈的区别 一.前言: C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示: 1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部...

2017-11-30 21:11:11

阅读数 71

评论数 0

C语言指针段错误

一个网友问了我一个问题,一个C程序运行出现了段错误,这个问题非常好,很多初学者都容易犯这个错误,具体代码如下: 这个编译没有问题,但是运行是段错误    Segmentation fault 因为你定义了一个结构体指针p,用来指向此类结构体,但是你却没有给他赋值,此时p的值为N...

2017-05-04 10:19:07

阅读数 938

评论数 0

C语言之对队列、结构体、指针、数组的理解

C语言之对队列、结构体、指针、数组的理解 附测试例子 #include #include #define QueueSize 100 typedef unsigned char datatype; //队列的数据元素 typedef struct {     int...

2017-03-24 17:47:31

阅读数 814

评论数 0

C语言之循环结构中break、continue、goto、return和exit的区别

转载出处:http://blog.csdn.net/u012917700/article/details/49885667 循环结构中break、continue、goto、return和exit的区别(1) 在此之前讲解循环结构时不止一次提到了break语句和continue语句...

2017-03-24 15:31:07

阅读数 7614

评论数 0

C语言之volatile关键字的应用

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值(From Memory),而不是使用保存在寄存器里的备份。 volatile的意义是:      比如两个线...

2017-03-23 08:42:07

阅读数 333

评论数 0

C语言之assert的用法

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include void assert( int expression ); assert的作用是先计算表达式expression,如果其值为假(即为0),那么它先向标准错误流stderr打印一条...

2017-03-22 19:32:18

阅读数 232

评论数 0

C语言之指针函数

指针函数是指带指针的函数,即本质是一个函数。 函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。 定义 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受, 也就是说,指针函数一定有“函数返回值”,而且,在主调函...

2017-03-22 18:20:28

阅读数 128

评论数 0

C语言之函数指针

函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。 这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。 如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。 有了指向函数的指针变量后,可用该指...

2017-03-22 18:12:40

阅读数 120

评论数 0

main参数的含义

main函数两个参数的意义 例如 int main(int argc,char *argv[]) { } int main(int argc,char **argv) { } 编译链接后生成 a.exe,那么在命令行调用时如 a.exe -a1 -a2 则a.ex...

2017-03-22 17:21:58

阅读数 221

评论数 0

提示
确定要删除当前文章?
取消 删除