当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: (1) C语言的函数和参数传递 在着手开始学习数据结构与算法设计方法之前,我们先回顾一些C语言基础,这会有利于我们以后基于C语言的编程和分析,虽然其中有许多你可能已经非常熟悉了。
 

 

 ·使用增强安全性的linux(转)    »显示摘要«
    摘要:增强安全性的linux(selinux)是美国安全部的一个研发项目,它的目的在于增强开发代码的linux内核,以提供更强的保护措施,防止一些关于安全方面的应用程序走弯路,减轻恶意软件带来的灾难。 普通的linux 与selinux相比较 普通的linux系统的安全性是依赖内核的,这个依赖是通过setuid/setgid产生的。在传统的安全机制下,暴露了一些应用授权问题、配置问题或进程运行造成整个系......
    摘要:research area: 1.separation of crosscutting concerns, support for aspects at requirement and design level. 2.identifying the mapping and influence of requirements level aspects on artefacts at latte......


【FAQ】C语言递归的基础和数据结构的初步概念

(1) c语言的函数与参数传递

1.1  函数与参数(传值.引用) 【程序编程相关:J2EE的13种核心技术(二)

在着手开始学习数据结构与算法设计方法之前,我们先回顾一些c语言基础,这会有利于我们以后基于c语言的编程与分析,虽然其中有许多你可能已经非常熟悉了. 【推荐阅读:J2EE的13种核心技术(一)

考察函数ex_1(程序1.1),a,b,c都是函数ex_1的形式参数(formal parameter),类型均为整形,如果以下调用ex_1(1, 2, x),它的返回结果还是一个整数: 【扩展信息:WIN2003终于支持静态ARP了

传值参数:

----------------------------------------------------------------------------------------------------------------------

     程序1.1

int ex_1(int a, int b, int c)

{

 return (a + b ) / c ;

}

当ex_1(1, 2, x)被执行时,a的值被赋为第一个参数1,b的值被赋为第二个参数2,而需要注意的是,c的值会被赋为x,但如果x不是int类型,那么首先会先进行强制类型转换.例如x = 3.7是float型,那么c会被赋值成int(3.7) = 3.在该程序段中(程序1.1),a, b, c都是传值参数(value parameter),但这种形式传值时,首先要判断原参数的类型分别能否合a, b, c的类型相同,如果不同就进行强制类型转换,当然这里假设这种转换是允许的.在这种形式的传入参数时,函数体调用或操作的只是原参数的一份拷贝,而不会修改原参数的值.

引用参数:

为了书写与理解方便,我们以后会不加说明的在程序段中直接使用到c++的引用传递参数形式.在程序1.1中使用的传值参数的用法会增加程序的开销,比如调用ex_1(int a, int b, int c)传入参数时系统需要赋值一份拷贝,而在返回时却又要释放这些拷贝,假设函数ex_1()被调用一千次,则需要复制与释放传值参数a.b.c各3000次,显然这会带来效率的降低!使用引用参数(reference parameter)会是解决这个问题的好办法.

----------------------------------------------------------------------------------------------------------------------

     程序1.2

int ex_2(int &a, int &b, int &c)

{

 return (a + b ) / c ;

}

考察程序1.2中函数ex_2(x, y, z).其中x, y, z的类型分别与ex_2中的参数a, b, c相同,那这些原参数x, y, z将分别会被赋对应的别名(alias)a, b, c.也就是相当于原来叫x, y, z的三个人再给他们分别起另外一个名字分别是a, b, c称呼他们.因此在函数ex_2()中,对a,b,c的操作相当于对原来的x,y,z直接进行操作,只是现在称呼的名字不同而已.
...   下一页
    摘要:当初在设计weblucene 的时候,为了能够正确的截取请求中的中文q参数,在执行request.getparameter("q")之前先调用了request.setcharacterencoding("gb2312")方法。这样虽然避免了乱码问题的出现,但却使得weblucene 同时只能对一种编码进行处理,无法实现类似于google 的搜索效果,例如下面......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE