它用于unix系统调用中

它用于unix系统调用中

ID:30417072

大小:86.15 KB

页数:17页

时间:2018-12-29

它用于unix系统调用中_第1页
它用于unix系统调用中_第2页
它用于unix系统调用中_第3页
它用于unix系统调用中_第4页
它用于unix系统调用中_第5页
资源描述:

《它用于unix系统调用中》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、它用于UNIX系统调用中。由编译器分配空间,在函数执行完后由编译器主动释放。2、堆:用来寄存由动态分配函数(如malloc)分配的空间。是由程序员本人手动分配的,并且必需由程序员使用free开释。假如忘却用free释放,会导致所分配的空间始终占着不放,导致内存泄漏。3、全局局:用来存放全局变量和静态变量。存在于程序的全部运行期间,是由编译器分配和释放的。4、文字常量区:例如char*c="123456";则"123456"为文字常量,存放于文字常量区。也由编译器节制分配和释放,不容许修改。5、程序代码区:用来存放程序的二进制代码。全局变

2、量、静态全局变量、静态部分变量全局区函数参数、局部变量运行时堆栈字符串常量文字常量区Const:Intconst*pci;指针所指向的值不能被修改,然而指针的值可以修改Int*constcpi;指针的值不可以修改,但是指针所指向的值能被修改Intconst*constcpci;指针自身和所指向的值都不能被修改const在c++偏向于"常量",而在c中倾向于"只读",也可以通过指针方式修正(vc中waring)c++:array[const]准确c:array[const]过错在c++中,编译器通常不为普通const常量分配存储空间,而是

3、将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。在c中,const是一个不能被改变的一般变量,既然是变量,就要占用存储空间,所以编译器不晓得编译时的值符号表:(1)是吧编译程序坚持(记载)源程序中各种名字的属性和特征信息的各种表(2)符号表中信息在编译各阶段都要应用,编译停止出产目的代码后,符号表中信息也跟着删除(3)编译结束时,符号表中的信息体当初目标代码的存储单元的地址如果赐与"指针传递"方式的函数返回值加const修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给

4、加const修饰的同类型指针,例如函数constchar*GetString(void);如下语句将呈现编译毛病:char*str=GetString();正确的用法是constchar*str=GetString();静态变量将初始化为0自动变量无缺省初始化值,自动变量的初始化较之赋值语句效率并无提高。除了声明为const变量之外,在声明变量的同时进行初始化和先声明后赋值只有作风之差,并无效率之别,3D立体。除非对自动变量进行显示的初始化,否则当自动变量创建时,它们的值老是垃圾逗号表达式:这些表达式自左向右一一求值,整个逗号表达式的值

5、就是最后哪个表达式的值像如下程序可考虑用逗号表达式:a=get_value();count_value(a);while(a0){.a=get_value();count_value(a);}使用逗号表白式:while(a=get_value(),count_value(a),a0){.}零是假,任何非零值皆为真C中不能一块比拟,15=a=10从左向右运算,15=a为真是表达式为1,接着再比较1=10,若为真,此表达式的值为1,输出:Inrangeinta=20;if(1=a=10)printf("Inrange");elsepri

6、ntf("Outofrange");前缀++:先增值,再拷贝,母亲-博文预览,返回拷贝后缀++:先拷贝,再增值,返回拷贝总:++操作符都是对其拷贝的操作*p++:++的优先级高于*,但是,事实上,这里涉及三个步骤:(1)++操作符产生cp的一份拷贝(2)而后++操作符增添cp的值(3)最后,在cp的拷贝上执行间接访问操作(通过指针拜访它所指向的地址的进程)试剖析:inta=3;int*p=&a;//设p=2534*p++3p=2538(*p)++3p=2534*++p?p=2538++*p4p=2534++*++p?p=2538(g

7、cc中有问题,应当是gcc的问题)++*p++4p=2538*++p++左值无效,不能对拷贝在拷贝,无意义Printf中参数的输出次序因编译器不同而异,gcc编译器可能会涌现预想不到的成果,属编译器有bugprintf("%d%d%d%d",pa++,pa++,pa++,pa++);//在VC6.0中输出四个相同的数,在gcc中四个数不同printf("%d%d%d%d",++pa,++pa,++pa,++pa);//在VC6.0中输出不同的四个数,在gcc中四个数雷同#includestdio.hvoidreverse_str

8、ing(char*string){chartemp,*pend,*pt;printf("%s",string);for(pt=string;*pt!='[message]';pt++);pt--;pen

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。