| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 623 人关注过本帖
标题:[特别求助]关于C的编写风格以及对指针的理解问题!
只看楼主 加入收藏
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
收藏
 问题点数:0 回复次数:8 
[特别求助]关于C的编写风格以及对指针的理解问题!
关于C的书写风格问题,我要求助大家一下了,请帮我改正一下我下面的书写格式:
我同学对我说 只要我能理解下面的*(++p),&p,p,++p,*p,*p++,++*p,*p,k,p,&k每1个结果的含义和关系,就可以说明我掌握了50%的指针了,我研究了半天都不会啊
#include <stdio.h>
int main (void)
{
int *p,k=0;
p=&k;
*p=100;
printf("%x\n",&p);
printf("*(++p)=%x\t&p=%x\tp=%x\t++p=%x\t*p=%x\t*p++=%d\t++*p=%d\t*p=%d\tk=%d\tp=%x\t&k=%x\t",*(++p),&p,p,++p,*p,*p++,++*p,*p,k,p,&k);
printf("*p=%x\tp=%x\tk=%d\t",*p,p,k);
return 0;
}
以上的不用说了 光看就头晕了。
printf("*(++p)=%x\t&p=%x\tp=%x\t++p=%x\t*p=%x\t*p++=%d\t++*p=%d\t*p=%d\tk=%d\tp=%x\t&k=%x\t",*(++p),&p,p,++p,*p,*p++,++*p,*p,k,p,&k);
主要是我编译后出现了问题啊!*(++p)=1我用TC2.0编译的而且看起来很乱;看我的附件图 怎么样通过调整使数据对齐容易看 我明天晚上晚点才能看 请大哥们帮帮忙吧!
SQlL8wa9.rar (13.88 KB) [特别求助]关于C的编写风格以及对指针的理解问题!


[此贴子已经被作者于2007-8-3 23:47:48编辑过]

搜索更多相关主题的帖子: 指针 风格 编写 
2007-08-03 23:28
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
收藏
得分:0 
[IMG]F:\11.jpg[/IMG]

我讨厌别人叫我菜鸟,不过我的确很菜。。。
2007-08-03 23:45
leeldy
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-8-2
收藏
得分:0 
正好刚看完这一章,下面是我的理解,错了高手一定要指正!!!

*(++p):使指针变量指向下一个地址,取其值。厄,不是数组的话,值可不是确定的哦,貌似不会像上面这么用
&p:取指针变量p的地址
p:指针变量地址,通过p=&k赋值
++p:使指针指向下一个数据地址,常用于数组,很灵活。用在这里貌似不太好吧,值不是确定的哦
*p:取指针变量p所指向地址的值,即变量k的值
*p++:取指针变量p所指向地址的值,然后使其值加1
++*p:区指针变量p所指向的地址,使其值加1后,取其值
*p:同上
k:变量k,通过指针变量赋值100
p:同上
&k:取变量k的地址

↑↑↑↑↑↑↑↑如果我错了,请改正我的错误↑↑↑↑↑↑↑↑

2007-08-03 23:55
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-08-04 00:05
longziyong8
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-4
收藏
得分:0 
指针,难啊!
2007-08-04 00:32
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
收藏
得分:0 
以下是引用leeldy在2007-8-3 23:55:47的发言:
正好刚看完这一章,下面是我的理解,错了高手一定要指正!!!

*(++p):使指针变量指向下一个地址,取其值。厄,不是数组的话,值可不是确定的哦,貌似不会像上面这么用
&p:取指针变量p的地址
p:指针变量地址,通过p=&k赋值
++p:使指针指向下一个数据地址,常用于数组,很灵活。用在这里貌似不太好吧,值不是确定的哦
*p:取指针变量p所指向地址的值,即变量k的值
*p++:取指针变量p所指向地址的值,然后使其值加1
++*p:区指针变量p所指向的地址,使其值加1后,取其值
*p:同上
k:变量k,通过指针变量赋值100
p:同上
&k:取变量k的地址

对,这个是比较简单的 就是说明下以上几个量谁和谁相等,谁和谁的地址相等,谁的地址加或减得到另一个量,还没有加上数组,再加上数组 我恐怕就更云里雾里了 ,但是我开始就碰壁啊,虽然每台机器运行的答案肯定不一样,但是我怎么会得到*(++p)=1想了一宿了 啊


我讨厌别人叫我菜鸟,不过我的确很菜。。。
2007-08-04 06:47
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
收藏
得分:0 
以下是引用I喜欢c在2007-8-4 0:05:24的发言:
http://bbs.bc-cn.net/viewthread.php?tid=115777&star=at#


讲得很细..

先快速看了1便感觉挺详细,先收藏晚上回来再详细研究,谢谢,白天没时间学 哎!


我讨厌别人叫我菜鸟,不过我的确很菜。。。
2007-08-04 06:50
水漪儿
Rank: 2
来 自:shangshida
等 级:论坛游民
帖 子:147
专家分:10
注 册:2007-7-19
收藏
得分:0 

由转义字符一个一个分开看,就不会感觉很乱了.
不过*p++什么不是一般用于数组吗?这种用法我没有见过
你哪里弄来的啊?

[此贴子已经被作者于2007-8-4 21:10:51编辑过]

2007-08-04 20:26
crazyboy216
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-6-28
收藏
得分:0 
但是我怎么会得到*(++p)=1想了一宿了 啊???
这个问题我认为:
你只初始化了指针P,并没有初始化他的下一个地址,所以在*(++p)中可能是输出了内存中以前的信息。
我们用指针的时候要小心指针乱指,尤其不要越界。一不小心把内存中的重要信息给覆盖掉了就只有哭了。

细听大家的见解。
2007-08-04 20:40
快速回复:[特别求助]关于C的编写风格以及对指针的理解问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047669 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved