q*******i 发帖数: 353 | 1 【 以下文字转载自 CS 讨论区 】
发信人: qqwuweiyi (娓娓), 信区: CS
标 题: Java数组怎么样能参数传递
发信站: BBS 未名空间站 (Wed Mar 31 22:00:20 2010, 美东)
请教大家一个问题:Java中,我想让一个数组整个的参数传递而不要地址传递应该怎么
弄?
或者回答这个问题:假设数组a[4][4]={...},数组b[4][4]=a[4][4]的话,那么数组b
的值的地址和数组a中的地址是一样的。我就想要知道,如何建立一个数组b,数组a和
数组b的值一样但是地址不一样。
谢谢大家啦,想了很久不知道怎么解决。 |
|
q*******i 发帖数: 353 | 2 请教大家一个问题:Java中,我想让一个数组整个的参数传递而不要地址传递应该怎么
弄?
或者回答这个问题:假设数组a[4][4]={...},数组b[4][4]=a[4][4]的话,那么数组b
的值的地址和数组a中的地址是一样的。我就想要知道,如何建立一个数组b,数组a和
数组b的值一样但是地址不一样。
谢谢大家啦,想了很久不知道怎么解决。 |
|
q*******i 发帖数: 353 | 3 我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢
b |
|
q*******i 发帖数: 353 | 4 我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢 |
|
o*****e 发帖数: 23 | 5 【 以下文字转载自 Programming 讨论区,原文如下 】
发信人: oldbare (bearhill), 信区: Programming
标 题: 请问怎样处理CHECK BOX在SERVLET中的参数传递, 谢了!
发信站: The unknown SPACE (Wed Apr 25 01:48:40 2001) WWW-POST
我在用JAVA写一个数据库的小程序. 在网页上用CHECK BOX选择要察
看的资料, 如果全选的画, 程序没有问题, 但如果只选了一个或几个
(未选慢), 则catch(Excpetion) display:
ERROR3: null
如果没有CATCH, 网页显示INTERNAL ERROR
不知道是否是因为SERLVET不能处理NULL(CHECK BOX未选满时, 未选
的VALUE为NULL.)
请问如何处理?
谢了!!!!! |
|
q*******i 发帖数: 353 | 6 我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢 |
|
q*******i 发帖数: 353 | 7 我是先把数组拷贝(比如把数组a copy 给b),然后把b整个数组作为参数传递到函数
中,在函数内数组b的值被修改了,于此同时函数外a的值也被自动修改了(因为是地址
拷贝),但是我希望保持a不变,怎么操作? |
|
o***i 发帖数: 603 | 8 简单说,就是当前网页是https的,上面有个window.open开个子页面,是http的,如何
从传递一个参数在这两个页面之间
如果是同一个协议的话,很简单
不同协议就不行: The frame requesting access has a protocol of "https", the
frame being accessed has a protocol of "http". Protocols must match.
我知道有个复杂的解决办法,传递session,太麻烦了
这个问题应该挺常见的吧,比如你在http下填了一个表格,最后提交页面是https的,数
据怎么个传递过去呢? |
|
b******7 发帖数: 92 | 9 数组作参数要带上长度
void func(int a[],size_t len)
c/c++不能直接用参数传递数组,而将其转化为指针传递
上面的定义等价于void func(int * a,size_t len)
测试如下的case就可知道
void func(int a[], size_t len)
{
cout<
}
int main()
{
int a[] = {1,2};
cout<
func(a,sizeof(a)/sizeof(int));
return 0;
} |
|
s******e 发帖数: 2181 | 10 基本道理清楚,数组作为参数传递给函数的只是数组首元素的地址,函数在需要用到后
面元素时再按照这个地址和数组下标去查找。同时,数组名又正好是数组首元素的地址
,所以在主函数里调用子函数时只需写数组名,那么首元素的地址就传出去了。
我的问题来了,如下例,被调用的函数multiply的形参部分,float *p说明p是一个地
址,这个地址就是传过来的数组首元素的地址。既然p只是地址,那后面的操作
p[0]=2*p[0]
p[1]=2*p[1]
p[2]=2*p[2]
...
不是在把地址乘以2吗,怎么就变成把地址里面的内容乘以2了?用*p[...]来操作是不
是更符合情理?而且p既然是一个地址,怎么就可以写成p[...]了呢,这不变成地址数
组了吗?
虽然实际当中都在这样写,但心中的困惑一直都在。我不是专业马工,求专业马工解惑
并轻拍。
main()
{
float num[]={2.0,3.1,8.6,4.1,7.9};
const int size=sizeof(num)/sizeof(int);
multiply(num,size);
...
}
voi... 阅读全帖 |
|
q*******i 发帖数: 353 | 11 是不是数组整个的传递只能是地址传递,没有办法改成值传递的? |
|
q*******i 发帖数: 353 | 12 就调用一次啊,在函数外先 arraycopy(b,a)。然后把数组b传递给函数,在函数中
修改数组b的值同时,a的值也被修改,我想达到只在函数中修改b的值,a的值不变,除
了你刚才说的办法,还有没有其他更高效的办法? |
|
C********g 发帖数: 1548 | 13 用System.arrayCopy复制一个,然后传递复制的那个。 |
|
o***i 发帖数: 603 | 14 当前窗口是https
有个链接,javascript弹出子窗口,http
如何传递一个值从当前窗口到子窗口? |
|
n******1 发帖数: 3756 | 15 不太确定你问的意思,可以用javascript构建http后面的参数吧 |
|
d****i 发帖数: 4809 | 16 不是专家,好像可以用query string吧,就是用
var queryString = window.location.search;
然后parse出你要的参数。cross-domain的没有试过行不行。
the
,数 |
|
a***a 发帖数: 739 | 17 在机器A.com上的用户user的login shell被设置成了一个non-interactive的script:
shell=~/x.sh
问题是如何在使用ssh登录的时候 ssh [email protected]
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
, 把一些参数传递给x.sh
我看到网上有的例子是 ssh [email... 阅读全帖 |
|
w*******U 发帖数: 256 | 18 C语言程序用到 fftw, 如何将 plan 作为参数传递给子程序?下面的调用对么?
int main()
{
void myfun(int n1, int n2, int n3, double *phys, fftw_complex *spec, fftw_
plan pf, fftw_plan pb, ...);
......
int n1=64, n2=64, n3=64;
int n3c, n3r;
n3c=n3/2+1; n3r=2*n3c;
int rank=3, n[rank];
n[0]=n1; n[1]=n2; n[2]=n3;
double *phys; fftw_complex *spec;
phys=(double*)malloc(sizeof(double)*n1*n2*n3r);
spec=(fftw_complex*)fftw_malloc(sizeof(fftw_complex)*n1*n2*n3c);
fftw_plan pf, pb;
pf=fftw_plan_dft_r2c(rank, n, phys, spec, FFTW_MEASURE);
p... 阅读全帖 |
|
M********t 发帖数: 5032 | 19 引力波
带人类倾听星辰大海之声
新浪科技
ugmbbc
8小时9分钟前
在一波又一波传言后,终于!北京时间2016年2月11日23:40左右,激光干涉引力波天
文台(LIGO)负责人、加州理工学院教授David Reitze宣布,人类首次发现了引力波。
发布会上究竟揭开了哪些谜团?与之前的传言有何不同吗?中国科学院国家天文台黑洞
来客团队(团队主要成员苟利军 研究员为国家天文台恒星级黑洞研究创新小组负责人
,而这次被探测到的引力波正是来自双黑洞系统),全面解读这场激动人心的发布会。
正如发布会所言,在被预言将近百年、苦苦追寻几十年之后,首个位于地球之外13亿光
年的引力波源GW150914被人类直接探测到,这是一个值得纪念的伟大时刻,一个新时代
的序幕正在拉开——地球人,欢迎你来到引力波时代!
激动人心的发布会结束了,其重点内容可以被简单归纳为三点:
(1)引力波终于被探测到了。
(2)引力波产生于两个恒星量级黑洞的合并(merger)。
(3)引力波是美国的激光干涉引力波天文台(英文简称LIGO)发现的。
接下来,让我们逐个分析和解释一下以上三点,从而对这项具有划时代意义的科学发现
... 阅读全帖 |
|
h*h 发帖数: 27852 | 20 http://www.yinwang.org/blog-cn/2015/04/03/paradigms
编程的宗派
总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”
(OOP)好。既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙视。然后
呢又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问题的工
具就是好工具!我个人其实不属于这三帮人中的任何一个。
面向对象编程(Object-Oriented Programming)
如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所
谓“面向对象语言”,其实就是经典的“过程式语言”(比如Pascal),加上一点抽象
能力。所谓“类”和“对象”,基本是过程式语言里面的记录(record,或者叫结构,
structure),它本质其实是一个从名字到数据的“映射表”(map)。你可以用名字从
这个表里面提取相应的数据。比如point.x,就是用名字x从记录point里面提取相应的
数据。这比起数组来是一件很方便的事情,因为你不需要记住存放数据的下标。即使你
插入了新的数据成... 阅读全帖 |
|
d******e 发帖数: 2265 | 21 转帖:
克里斯可以说是天才少年和好学生的代名词,他在2000年本科毕业之后,继续攻读计算
机硕士和博士。但克里斯并不是宅男,学习之余他手捧「龙书」游历世界,成为德智体
美劳全面发展的好学生。之后就是一篇又一篇的发表论文,硕士毕业论文即提出了一套
完整的运行时编译思想,奠定了 LLVM 的发展基础,读博期间 LLVM 编译框架在他的领
导下得到了长足的发展,已经可以基于 GCC 前端编译器的语义分析结果进行编译优化
和代码生成,所以克里斯在2005年毕业的时候已经是业界知名的编译器专家了。
注:很多计算机专业的大学生经常问我在大学里学点什么好,看看克里斯就行了。以目
前的科技信息开放程度,如果你在自己感兴趣的领域里用心耕耘,再加上那么一点点天
分,毕业时成为某一个专有领域的专家应该不是问题。那时就不是你满世界去找工作了
,而是工作满世界来找你!
克里斯毕业的时候正是苹果为了编译器焦头烂额的时候,因为苹果之前的软件产品都依
赖于整条 GCC 编译链,而开源界的这帮大爷并不买苹果的帐,他们不愿意专门为了苹
果公司的要求优化和改进 GCC 代码,所以苹果一怒之下将编译器后端直接替换为 LLVM... 阅读全帖 |
|
z*******3 发帖数: 13709 | 22 日
比如这个
46、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返
回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方
法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对
象的引用是永远不会改变的。
看着看着就觉得有些不对,做了个实验,发现猜测得没错,应该是引用传递
网络上以讹传讹得真利害 |
|
e*****t 发帖数: 1005 | 23 Java is pass by value. In particular, 2 different scenarios:
1. for primitives, pass by their values idrectly
2. for non-promitives, pass by the values of their references.
日
比如这个
46、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返
回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方
法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对
象的引用是永远不会改变的。
看着看着就觉得有些不对,做了个实验,发现猜测得没错,应该是引用传递
网络上以讹传讹得真利害 |
|
y**b 发帖数: 10166 | 24 看看能不能说的清楚:
科学计算程序,一次性从数据文件中读入很多参数,不同的(一个或几个相关参数)要传
递给不同的对象,很多对象还具有这种特点:初始化的时候只需要某些参数,其他动作
时还需要其他参数,比如空间一个多面体,初始化只需要空间坐标和密度等等,而后面
发生移动时还需要时间步长和重力加速度等等(时间步长和重力加速度逻辑上不应该是
该多面体的数据成员)。
第一,我是应该把时间步长/重力加速度等等作为该对象的成员,进行初始化;还是作
为该对象某个成员函数的的形参,想办法传入实参呢?
第二,我想设计一个class/struct来存储所有参数,以便MPI编程时用唯一一个进程来读
取参数,然后将这个存储参数的对象(通过boost.mpi)序列化并一次性broadcast给其他所
有进程(而不是一个参数一个参数地broadcast)。那么将包含所有参数的这个参数对象作
为实参,传递给任意一个只需要某些参数(而不是全部参数)的其它类的成员函数,是不
是很怪异呢?还是应该重新设计该成员函数的形参,使之仅仅获取所需要的参数,但这
样一来需要另行构造这些参数的类型?
谢谢。 |
|
L*******r 发帖数: 1011 | 25 Google就是好用。呵呵,以后见面就说:同学,今天你google没有? :)
注:我自己没有这么做过,我的系统只要集成原来的COM系统.
http://www.aspx.cn/comm/dotnetbbs/Showtopic.aspx?Forum_ID=6&Id=5284
指针类型参数传递:
在Windows API函数调用时,大部分函数采用指针传递参数,对一个结构变量指针,我
们除了使用上面的类和结构方法传递参数之外,我们有时还可以采用数组传递参数。
下面这个函数通过调用GetUserName获得用户名
BOOL GetUserName(
LPTSTR lpBuffer, // 用户名缓冲区
LPDWORD nSize // 存放缓冲区大小的地址指针
);
[DllImport("Advapi32.dll",
EntryPoint="GetComputerName",
ExactSpelling=false,
SetLastError=true)]
static extern bool GetComputerName (
[MarshalAs(Unmana |
|
p*u 发帖数: 2454 | 26 来自主题: Programming版 - 编程的宗派 总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”
(OOP)好。既然现在出了两个帮派,就有人积极地做它们的帮众,互相唾骂和残杀。
然后呢,又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问
题的工具就是好工具!
我个人其实不属于这三帮人中的任何一个。
面向对象编程(Object-Oriented Programming)
如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所
谓“面向对象语言”,其实就是经典的“过程式语言”(比如Pascal),加上一点点抽
象能力。所谓“类”和“对象”,基本是过程式语言里面的记录(record,或者叫结构
,structure),它的本质就是一个从名字到数据的“映射表”(map)。你可以用名字
从这个表里面提取相应的数据。比如point.x,就是用名字'x'从记录point里面提取相
应的数据。这比起数组来是一件很方便的事情,因为你不需要记住存放数据的下标。即
使你插入了新的数据成员,仍然可以用原来的名字来访问已有的数据,而不用担心下标
错位的问题。
所谓“对象思想”(区别于“面向... 阅读全帖 |
|
s*********y 发帖数: 16 | 27 【 以下文字转载自 Internet 讨论区 】
【 原文由 sunshineday 所发表 】
请教各位大侠如何在两个不同的php文件之间传递参数?
比如说我在a.php通过Header(Location:"b.php")调用b.php,
而且a.php中有参数$var要传递给b.php,不知如何实现?
(比如说设置global之类的?昨天在网上看了半天,也没
看出个所以然)
我试图通过在a.php中内嵌
input=submit.... 值倒是传递了,但总会
出现一个submit的botton,不知有那位大侠知道如何
让html自动submit form,而不需要用户按那个submit?
多谢了! |
|
c******e 发帖数: 545 | 28 要是带参数的情况就复杂多了,在传统x86平台上,会涉及至少三个问题:
1. 参数传递的方式:stack(__stdcall,__pascal,__cdecl),register+stack(__
fastcall)
2. 参数传递的顺序:右到左(__cdecl,__stdcall),左到右(__pascal),不定,取
决于compiler(__fastcall)
3. 处理stack:主函数(__cdecl),被叫函数(其他)
如果不特殊说明,函数的calling convention都是默认__cdecl,windows平台上API默
认__stdcall(除了变参函数,这个只有__cdecl可以处理)
这些应该都是比较古老的知识了,现在可能除了搞底层的人都不去管了,从前主要用在
函数库互调和写能被c调用的汇编函数的时候用的。
轻量级嵌入式平台上情况还不一样,主要因为资源有限,一些平台上根本没有参数栈,
函数参数都是保存在全局变量里的,函数本身默认为不可重入。这种情况再声明函数指
针的时候要指明是可重入函数(一般compiler会有特殊的keyword),当然被叫函数也
应该是相同... 阅读全帖 |
|
I*E 发帖数: 152 | 29 如题,能否传递参数到这个函数里,如果想传递该如何写?谢谢! |
|
I*E 发帖数: 152 | 30 如题,能否传递参数到这个函数里,如果想传递该如何写?谢谢! |
|
I*E 发帖数: 152 | 31 如题,能否传递参数到这个函数里,如果想传递该如何写?谢谢! |
|
y**b 发帖数: 10166 | 32 多谢pptwo and goodbug! 按这个思路做了,感觉不错,有几个问题再请教一下:
1. 这个singleton维护的hashmap类似于一个全局变量,无需传递函数参数,
任何对象和函数都可以取用,很方便,可是总觉得有点特别。想问一下这样做
很普遍吗?有个实验室开发的一个大型面向对象程序包,读入数据之后进行了
无数的分离和传递,直到每个用到(不同数据部分)的对象都完全用local的数据
结构来维护所需数据,好处是各个对象显得high cohesion, 缺点是非常繁琐、
数据冗余很多。你们觉得那种设计更好?
2. pptwo: You got great flexibility by not hard-coding all the parameters
in that singleton class. 这句话怎么理解?我想把所有数据一次性读入到
该singleton class,这样失去flexibility?
3. 大量进程读(一次)一个小文件(比如singleton class存储的内容)开销不大,
但是读那些很大的数据文件开销可能很大。比如我在该singleton cla... 阅读全帖 |
|
e*****m 发帖数: 320 | 33 时不变系统,假定有一组输入x(t)和输出y(t)已知。系统的传递函数未知。
通过一些其他知识和方法,可以估计系统的传递函数为:
h(t)=Aexp(-t/B) 其中A B为待定参数。
估计出来的h(t)与x(t)卷积,产生的y_estimate(t)必然与y(t)有一些误差。
按照一定的评判标准,必然可以得到一个最优值,获得A_estimate和B_estimate
这里面的问题是:有没有办法获得A_estimate和B_estimate这两个估计值的置信区间?
谢谢! |
|
h***o 发帖数: 539 | 34 BBS水木清华站∶精华区
发信人: FangQ (木头虫子), 信区: MathTools
标 题: Matlab与C++接口与混合编程讨论小结(六)
发信站: BBS 水木清华站 (Tue Nov 2 22:27:44 1999)
第二章、
第四节、用c编写mex程序[四]
发信人: fasiondog (乱了), 信区: MathTools
标 题: 用c编写mex程序 [part 4] (转信)
发信站: BBS 水木清华站 (Mon Apr 5 12:50:30 1999)
发信人: dodoo (虚怀), 信区: Programming
标 题: 用C编写mex程序 [PART 4]
输入数据是在函数调用之前已经在Matlab里申请了内存的,由于mex函数与Matlab共用同
一个地址空间,因而在prhs[]里传递指针就可以达到参数传递的目的。但是,输出参数
却需要在mex函数内申请到内存空间,才能将指针放在plhs[]中传递出去。由于返回指针
类型必须是mxArray,所以Matlab专门提供了一个函数:mxCreateDoubleMatrix来 |
|
c******e 发帖数: 545 | 35 这种函数都是__cdecl调用,参数从右向左压栈,主调函数清栈。
format string在最左(printf)或次左(fprintf,sprintf...),所以用[BP]访问的时候
位置可预测,然后根据format string生成每个参数的偏移地址。
一般来说函数调用大致顺序(__cdecl)是:
1.主调函数从右到左压参数
2.建立栈帧
1)保存BP(32位下EBP,下同)push bp
2)保存当前栈位置:mov bp,sp
因为BP和SP默认同时用栈段(SS),用BP上可访问参数,下可访问局部变量,一般不用
SP,因为SP总是在变。
3.函数体
4.恢复bp:mov sp,bp pop bp
4.函数返回
5.主函数清栈(xxx是参数大小):add sp,xxx
时间太久可能细节不太准确,不过大致过程应该差不多,可以使用变长参数的两个决定
因素是:1. 右到左压栈 2. 主调函数清栈 |
|
l******d 发帖数: 530 | 36 多谢了,再问下,这种变长参数的函数调用,往stack里push的东西,和普通的定长参
数函数调用有区别吗?对定长参数函数调用,stack里push的就是寄存器和参数,对变
长参数函数调用而言,会有什么特殊处理吗?
is |
|
q**1 发帖数: 193 | 37 来自主题: BuildingWeb版 - PHP问题 如何调用其它 html 或 php file,并传递参数。我现在用
contain 其他网页,但是不知道如何将当前文件里定义的参数
传递到 component.html
我原先用 Perl 的 HTML::Mason 可以
<& /path/to/component.html, arg1 => value1, arg2 => value2 &>
然后在 component.html里面做相应设置。。
请问,在 PHP 里面如何实现?? //bow |
|
h****a 发帖数: 637 | 38 我估计你的主要问题出在参数传递上。你可能用了pass by value. 用pointer or
reference来传递参数就没问题了。 其实你pass by value本来就是错的。 |
|
X****r 发帖数: 3557 | 39 基本上就是这样了。要注意这个其实是ABI 的一部分,所以完全取决于具体的体系结
构/ 平台。比如可以让被调用者负责保持某 些寄存器,以及用寄存器而不是栈来传递
前 若干 个参数。 |
|
发帖数: 1 | 40
=====================
C++ 工程实践(4):二进制兼容性
原创 2011年03月09日 10:46:00 标签:c++ /library /interface /mfc /class /编译
器 22578
陈硕 (giantchen_AT_gmail)
Blog.csdn.net/Solstice
本文主要讨论 Linux x86/x86-64 平台,偶尔会举 Windows 作为反面教材。
C/C++ 的二进制兼容性 (binary compatibility) 有多重含义,本文主要在“头文件和
库文件分别升级,可执行文件是否受影响”这个意义下讨论,我称之为 library (主
要是 shared library,即动态链接库)的 ABI (application binary interface)。至
于编译器与操作系统的 ABI 留给下一篇谈 C++ 标准与实践的文章。
什么是二进制兼容性
在解释这个定义之前,先看看 Unix/C 语言的一个历史问题:open() 的 flags 参数的
取值。open(2) 函数的原型是
int open(cons... 阅读全帖 |
|
p***p 发帖数: 559 | 41 【 以下文字转载自 Unix 讨论区 】
【 原文由 pingp 所发表 】
这是RS书里面的一个降序编历目录的程序,其中用
static Myfunc myfunc;
static int myftw(char *, Myfunc *);
static int dopath(Myfunc *);
用函数指针来作参数传递函数myfunc,并且
if ( (ret = dopath(func)) != 0) /* recursive */
用它来递归,可是这个函数本身就是个全局函数,直接
调用就可以了,为什么还有传递呢?
另外那段递归数据传递和结束条件也不太明白,RET变量
是作什么的
#include
#include
#include
#include
#include "ourhdr.h"
typedef int |
|
s*******n 发帖数: 10 | 42 顺便请问一下,PHP里面的参数传递问题,引用传递与值传递有什么区别.而且里面有回溯
这么一个概念,在理解的时候,始终模糊不清,感觉似懂非懂,请问各位大牛,你们在学这
里的时候是怎么去理解这一概念的,谢谢了! |
|
i****d 发帖数: 255 | 43 不太明白楼上的反问。
要我说,至少在C里面,仅传递函数名本身就可以了,因为不会有函数同名或者重载的
问题。函数名本身就可以唯一的代表一个函数,不再需要在传递函数指针时还带上所有
的参数类型。
对吗? |
|
I*****y 发帖数: 602 | 44 auto_ptr不适合做函数参数传递吧,这样ownership就被传寄去了。
还是用share_ptr比较保险。
另外auto_ptr和share_ptr基本可以按照指针类型数据看待,不需要引用传递,
当然引用传递也没有错。 |
|
p***p 发帖数: 559 | 45 这是RS书里面的一个降序编历目录的程序,其中用
static Myfunc myfunc;
static int myftw(char *, Myfunc *);
static int dopath(Myfunc *);
用函数指针来作参数传递函数myfunc,并且
if ( (ret = dopath(func)) != 0) /* recursive */
用它来递归,可是这个函数本身就是个全局函数,直接
调用就可以了,为什么还有传递呢?
另外那段递归数据传递和结束条件也不太明白,RET变量
是作什么的
#include
#include
#include
#include
#include "ourhdr.h"
typedef int Myfunc(const char *, const struct s |
|
w*********g 发帖数: 30882 | 46 中国反隐身系统再次捕获F22
-
2012-10-08 13:21 来源:战略论坛
意大利《进步者》报道,意大利政府最近宣布,最新研制成功了地面效应远程反隐
身无源雷达,并且称,该无源雷达可以探测并且发现F22的行踪。试验表明,3次发现并
且模拟拦击F22,取得成功。机载作用距离可以达到140公里,地面作用距离达到1800公
里。
-
据了解,目前中国也已经于去年中期研制成功了地面长效无源雷达系统。该系统作
用距离可以达到1500公里。机载系统也同时完成。日前,意军事贸易部门表示正在与中
国协商进行反隐身技术交流。消息人称,值得注意的是 “技术交流”而不在是引进。
虽然,前期美国政府警告意称,扩散高级反隐身科技,会严重威胁美国在亚洲军事
存在。但是,意表示这不是以前的类似A234“白头”鱼雷引进计划。这次是在中国已经
具有此项科技的基础上提出DG系统技术交流的。并不存在诸如高级科技军事技术对华出
售问题。
意方表示,目前,中国在反隐身成就取得的突飞进展,并不是谁能够替代的。恰恰
是美国那一次,越境试飞,造成中国地面DG系统直接捕获美国 F22的隐身数据。并且于
年底暴露F22模拟战飞机... 阅读全帖 |
|
W******2 发帖数: 1453 | 47 新唐人亚太台在二零一一年八月一日清晨正式登上中华电信的中新二号卫星,并正常播
出。新唐人亚太台通知亚洲观众,特别是中国大陆地区的收视户,从今天起可变更下链
接收频率参数,以持续收看新唐人电视所传播的自由讯息。
新唐人亚太卫星续约成功后,八月一日电视讯号的下链接收频率变更为3655MHz~
3659MHz,其余参数不变,将持续为亚洲地区观众传递自由讯息。
两岸协议监督联盟召集人赖中强表示:“我想这不只是新唐人的胜利,应该说是台湾,
我们也不敢说胜利,是台湾继续地,坚守了应该有的新闻自由的立场。”
台湾守护民主平台召集人颜厥安说:“这就是台湾民主社会的一个特性,它会让这个问
题充份地被讨论,充份被曝光,觉得权益受侵害的人,也有救济的途径。最重要的是说
,事情曝光之后,大家就要讲道理,那你就看出说哪一方比较没道理。无论是在野党、
执政党,官方、政治人物都有出来说话,透过了一定的民间动员,结合了官方的力量,
最后终于获得一个比较好的解决。”
海内外各界对于台湾最终挺住言论自由标竿的新唐人表示高兴。新唐人亚太台表示,登
上中新二号后,将善尽媒体责任,以国际视野的高度,将两岸三地的真相报导、正统中... 阅读全帖 |
|
l******d 发帖数: 530 | 48 比如printf()这种变长参数个数的函数,调用是stack里是需要push哪些东西的,跟普通的定长
参数函数调用有何不同呢?谢谢 |
|
d***p 发帖数: 128 | 49 以前刚好写过printf这个函数。“”内的参数是以字符串的形式存在,到stack的是它
的地址,当然你可以随便写内容了。之后的参数就反方向入stack。再之后PC,FP,函数
里的变量入stack。欢迎讨论 |
|
s****a 发帖数: 6521 | 50 【 以下文字转载自 Linux 讨论区 】
发信人: shorea (未注册用户), 信区: Linux
标 题: 问个shell编程小问题
发信站: BBS 未名空间站 (Thu Nov 24 11:57:24 2011, 美东)
请问,可不可以把 “-”这种类型的参数传递到函数里?
具体点说,我在一个文件里定义了一些函数,里面有用"getopts"接收参数的行。假设
这个函数叫func()
然后我在另一个脚本里用source调用这个文件;
然后下面的语句想要这样调用函数
func -i -o ....等等
发现不行。
而如果在终端下,source了文件之后,直接命令行输入 func -i -o ...等等,却可以
实现。
也就是说,函数里的getopts语句可以获取命令行里的参数,却不能用“脚本里的语句
”这样的方式来执行。
有什么办法么? |
|