|
楼主 |
发表于 24-3-2005 05:17 AM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 24-3-2005 08:01 AM
|
显示全部楼层
reylina_g 于 21-3-2005 08:51 PM 说 :
RPG/400可以用 RECURSIVE 和 PASS VALUE BY REFERENCE 吗 ?
不能, 编译时会有错误。
johe07 于 21-3-2005 10:14 PM 说 :
那么,它们之间的优弱点呢?怎样的情况下用它们其中一个呢?
我们竟常用的方法是pass by value的方法来取得varial 的值,是吗?
(我是不是在问很笨的问题啊?)
一般上, 我们是用pass by value 的方式, string 的variable 就是pass by reference 。
Pass by value
速度 : 慢
Pass by reference
速度 : 快
pass by reference , 我们是存取着original 的资料, 所以改变内容的话, 其它refer 这个variable 的内容都会被改掉。
例子:
=======
Ref. Value
____________________
| 2000 | 'A' | charA <- variable
|--------+---------|
| 2001 | 'B' | charB <- variable
|--------+---------|
| | |
|--------|---------|
以下是类似 C 的pseudo code
X = &charA
Y = &charA
printf *X output = 'A'
printf *Y output = 'A'
如果我们改变 X refer 的内容
*X = 'Q'
printf 的结果 :
printf *X output = 'Q'
printf *Y output = 'Q' |
|
|
|
|
|
|
|
发表于 24-3-2005 08:06 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 24-3-2005 11:44 PM
|
显示全部楼层
第二題你說用STACK是指用STACK模擬RECURSIVE的PREORDER來輸出嗎?
如果RECURSIVE的VERSION,大概如下(假設輸入進General Tree)
void preorder(binnode *nptr, int level)
{
int i = 0;
if (nptr == NULL) return;
while (i++ < level)
cout << ".";
cout << nptr->data << endl;
level++;
for each child node
preorder(child node, level);
}
[ Last edited by cristiano~7 on 24-3-2005 at 11:48 PM ] |
|
|
|
|
|
|
|
楼主 |
发表于 3-4-2005 03:43 AM
|
显示全部楼层
cristiano~7 于 24-3-2005 09:44 AM 说 :
第二題你說用STACK是指用STACK模擬RECURSIVE的PREORDER來輸出嗎?
是。
你的recursive写得很精彩! 我当时也一直在想recursive 要如何写,不过无论如何,我们用的电脑语言不支援recursive,所以也没有花太多时间。 |
|
|
|
|
|
|
|
发表于 10-4-2005 11:17 AM
|
显示全部楼层
这是我找到的一格sample code
是教学pointer的用法
可是我很不明白
请问大家有谁可以为以下做解释
void main()
{
float x, y; /* x and y are of float type */
float *fp, *fp2; /* fp and fp2 are pointers to float */
x = 6.5; /* x now contains the value 6.5 */
/* print contents and address of x */
printf("Value of x is %f, address of x %ld\n", x, &x);
fp = &x; /* fp now points to location of x */
/* print the contents of fp */
printf("Value in memory location fp is %f\n", *fp);
/* change content of memory location */
*fp = 9.2;
printf("New value of x is %f = %f \n", *fp, x);
/* perform arithmetic */
*fp = *fp + 1.5;
printf("Final value of x is %f = %f \n", *fp, x);
/* transfer values */
y = *fp;
fp2 = fp;
printf("Transfered value into y = %f and fp2 = %f \n", y, *fp2);
}
This is Pointers in C......
有人可以解释一下吗? |
|
|
|
|
|
|
|
楼主 |
发表于 11-4-2005 01:46 AM
|
显示全部楼层
院长 于 9-4-2005 09:17 PM 说 :
这是我找到的一格sample code
是教学pointer的用法
可是我很不明白
请问大家有谁可以为以下做解释
要明白pointer , 要先明白variable 如何收藏在memory 里。
每一个variable 都收藏在memory 的一个位置, 而这个位置通称为address。
address contain
________________________
x = 6.5; 在memory 中的X | 1567 | 6.5 | 1567 是假设的。
fp = &x ; fp 现在 = 1567 (不是6.5, 而是6.5 在memory 的address )
& 这operator 会 return address。
*fp = 9.2; 这表示, 在fp 的memory 位置的内容(contain) 设为 9.2。
这样一来, X 的 内容 间接变成9.2
明白吗? 接下来的fp2, y , 自己尝试明白 。。 提出你的疑问, 我有时间就帮你。
[ Last edited by jangancari on 10-4-2005 at 12:40 PM ] |
|
|
|
|
|
|
|
发表于 11-4-2005 02:04 AM
|
显示全部楼层
jangancari 于 11-4-2005 01:46 说 :
要明白pointer , 要先明白variable 如何收藏在memory 里。
每一个variable 都收藏在memory 的一个位置, 而这个位置通称为address。
...
可以解释define variable *fp
那么 * 在这里是代表什么? |
|
|
|
|
|
|
|
楼主 |
发表于 11-4-2005 02:39 AM
|
显示全部楼层
院长 于 10-4-2005 12:04 PM 说 :
可以解释define variable *fp
那么 * 在这里是代表什么?
float *fp 是declare 一个 float 的pointer , variable 名是fp,
或者这样来理解 contain(也就是 * ) of fp is a variable type float 。
这样的话, 应该比较容易明白了吧。。 |
|
|
|
|
|
|
|
发表于 11-4-2005 08:43 AM
|
显示全部楼层
pointer = 指标
简单来讲,记忆体地址的指标 |
|
|
|
|
|
|
|
发表于 11-4-2005 09:44 AM
|
显示全部楼层
jangancari 于 11-4-2005 02:39 说 :
float *fp 是declare 一个 float 的pointer , variable 名是fp,
或者这样来理解 contain(也就是 * ) of fp is a variable type float 。
这样的话, 应该比较容易明白了吧 ...
嗯。。。
好像明白啦。
最后的那段呢?
*fp = *fp + 1.5
y = *fp
fp2 = fp
那么意思是不是
*fp = *fp + 1.5
所以
y = *fp
fp2 = *fp
是这样吗? |
|
|
|
|
|
|
|
楼主 |
发表于 11-4-2005 11:31 AM
|
显示全部楼层
院长 于 10-4-2005 07:44 PM 说 :
嗯。。。
好像明白啦。
最后的那段呢?
*fp = *fp + 1.5
y = *fp
fp2 = fp
那么意思是不是
*fp = *fp + 1.5
所以
y = *fp
fp2 = *fp
是这样吗?
*fp = *fp + 1.5 ; 这个你应该明白吧 。。 fp 指的内容 = fp 指的内容 + 1.5
y = *fp ; 这个你自己尝试
fp2 = fp ; 这个你搞错了 , fp2 和fp 一样都是pointer 。
Memory 中的情况
address contain
________________________
x = 6.5; 在memory 中的X | 1567 | 6.5 | 1567 是假设的。
address contain
________________________
X | 1567 | 6.5 | 1567 是假设的。
address contain
________________________
fp 也是收在memory里 fp | xxxxx | 1567 |
xxxxx 这里不重要,所以我不显示
当fp2=fp , => fp2 = fp = 1567
因为在1567 这memory 位置收的是 X 的内容, 所以fp2 现在也指着 X
________________________
fp2 | yyyyy | 1567 |
yyyyy 这里不重要,所以我不显示 |
|
|
|
|
|
|
|
发表于 12-5-2005 12:29 PM
|
显示全部楼层
请问怎样安装 squirrelmail change password plugin
在网页上看到很多不同的版本
不知道那一种适合我用
我安装的是 fc2 + sendmail + vpopmail + squirrelmail 1.4x
[ Last edited by 院长 on 16-5-2005 at 09:51 AM ] |
|
|
|
|
|
|
|
发表于 14-5-2005 08:16 PM
|
显示全部楼层
請問你們懂Win32 API嗎?
我遇到難題。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|