论坛: 编程破解 标题: 关于C 复制本贴地址    
作者: none [onizuka]    论坛用户   登录
在C的数组中,例:
char name[10]="onizuka";
char *ptr,*p;
ptr=&name;
p=&ptr;
这时,ptr and p指向的地址是相同的

地主 发表时间: 04/17 14:45

回复: sbbfwt [sbbfwt]   论坛用户   登录
p应该是指向了存放ptr的地址了吧,*p=ptr
我也很菜,不知是不是这样。:)

B1层 发表时间: 04/17 16:33

回复: xuehu [xuehu]   论坛用户   登录
我认为ptr与p指向是同一地址。


B2层 发表时间: 04/18 13:17

回复: god__devil [god__devil]   论坛用户   登录
错了,指针不是这样用的,根本就不能用一个一级指针去指另一个一级指针

B3层 发表时间: 04/18 22:44

回复: dizi0774 [dizi0774]   论坛用户   登录

*p应该是ptr的地址。*ptr保存的是name数组首地址的地址。好难理解哦。如果是
char name[10]="onizuka";
char *ptr,**p;
ptr=name;
*p=ptr;
那就好看多了。


B4层 发表时间: 04/19 17:18

回复: aaron [aaron]   论坛用户   登录
如果用p=ptr的话
p,ptr,name的地址就是一样的
现在的p指向的是ptr的地址

B5层 发表时间: 04/28 21:20

回复: fatcat [xu09]   论坛用户   登录
这个程序是对的啊?!!
这应该是一道多级指针的应用才对啊。
怎么是一级指向一级呢?
应该是迪仔0774说的那样才有对呀~~~~




B6层 发表时间: 04/29 13:08

回复: zzzzhb [zzzzhb]   论坛用户   登录
char name[10]="onizuka";
char *ptr,*p;
ptr=&name;
p=&ptr;
在这里,ptr=&name相当于*prt=name.prt指向name
p=&ptr,就是把prt指针所在的地址放到p中,而不是把prt内的地址数据传递给p.所以p指向prt

B7层 发表时间: 05/03 21:51

回复: god__devil [god__devil]   论坛用户   登录
还是错的 
应该是char name[10]="onizuka";
char *ptr,**p;
ptr=name;
p=&ptr;
何必要用二级指针了?真不知道你们为什么的!

B8层 发表时间: 05/04 18:38

回复: xjy1234 [xjy1234]   论坛用户   登录
我的妈啊,这是什么啊!

B9层 发表时间: 06/08 05:19

回复: 山鸡 [duck_chen]   论坛用户   登录
首先这样写,在语法上没有错误,但是,p与ptr指向的地址却截然不同.
首先你必须明白指针既是地址,只不过是一种可变化的地址,可以对它赋值.
(因此地址可以说是一种常地址,就跟常量一样,指针就是可变化的,变地址,跟变量一样,可以把常值赋给它.这是我的理解.)
name本来就是一个地址,其值由计算机确定.我们不必去关心.
然后你还在name前面加了一个地址运算符,意思就是取存放name这个地址值的那个地址,这样就有点二维指针的意思了。我们暂时把它叫做二维地址吧,因为它的值虽然由计算机自动分配,但是自动并不表示是可随意变化的,一旦定下来就不变了,直到释放了这个空间为止.因此它是个地址,不能叫做指针.
你把这个二维地址赋给了一个一维指针:ptr=&name;
因此ptr是一个二维地址.
而:p=&ptr;则是把存放ptr指针的地址给了p,而不是把ptr指向的内容的地址给了p.我确实不知道你这个程序是什么意思.

B10层 发表时间: 06/08 12:39

回复: xiean [xiean]   论坛用户   登录
在C的数组中,例:
1: char name[10]="onizuka";
2: char *ptr,*p;
3: ptr=&name;
4: p=&ptr;
这时,ptr and p指向的地址是相同的
---------------------------------

emm......
在第一行中生成 name 数组,其地址暂定为 name.add
在第二行中生成 ptr, p 两个指针,其地址暂定为 ptr.add, p.add
上两行中 name.add ptr.add p.add 都是不可测的,随机型的变化,所载入进程的变化及操作系统的变化而变化
在第三行 *ptr -> name.add,ptr.add并不改变
在第四行 *p -> ptr.add, p.add并不改变
由此看来,*ptr = *p 的可能性有,但在实际中这种可能性几乎不存在,是否相等完全取决于。。。。天意。。。

在一般的编译器中 *p = p,*ptr = ptr,但并不是全部,所以最好用严谨的表示方法

B11层 发表时间: 06/08 15:18

回复: yjfwindows [yjfwindows]   论坛用户   登录
老大。应该是p=name吧。
而不是p=&name
这样的话。它的指向是地址。没有用。。。。
因为name是数组。

B12层 发表时间: 06/08 17:46

回复: lovehack [lovehack]   论坛用户   登录
这个没有错,只是二者指象的地址不同

B13层 发表时间: 06/08 20:13

回复: genius_li [genius_li]   论坛用户   登录
你真聪明,我很想认识你,我的QQ:83515310。
我也很喜欢编程,我刚想给他发的帖子本来和你的一样,一看你帖子,我就不用发了。

B14层 发表时间: 06/16 12:48

回复: genius_li [genius_li]   论坛用户   登录
随波逐流,你这个朋友我交定了。

B15层 发表时间: 06/16 12:50

回复: go.go.go [caolifa]   论坛用户   登录
    这里谁是权威,我要听谁的呀.你不可不要误人子弟啊.
name各&name有什么区别吗?不都是这个数组的首址吗?
被定义了以后这个地址应该被固定下来吧,直到它被释放为止吧.



B16层 发表时间: 08/02 10:51

回复: linda [linda]   论坛用户   登录

对于指针引用数组,,不能用&name,因为数组名本生就是一个地址,
要引用它的话,可以用*p=name or *p=&name[i]

B17层 发表时间: 08/02 15:16

回复: xjy1234 [xjy1234]   论坛用户   登录
请大家把指针的定义搞清楚,那就一切OK了,多上上机.

B18层 发表时间: 08/02 21:13

回复: xiaohan113 [xiaohan113]   论坛用户   登录
简单一句话!两个指针中的类容不同!但指向的最宗地址,也就是最终结果是一样的~

B19层 发表时间: 08/04 21:19

回复: zkbzgcz [zkbzgcz]   论坛用户   登录
我认为你说的这些有些问题,
一是。不可以用=&name.而应=name.
二是。不可以这样=&pre.应=pre.

B20层 发表时间: 08/05 20:52

回复: drckness [drckness]   论坛用户   登录
不喜欢指针只喜欢引用嘿嘿嘿嘿


[此贴被 drckness(drckness) 在 8月7日18时40分 编辑过]

B21层 发表时间: 8/7 18:22

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号