| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1057 人关注过本帖
标题:指针问题
只看楼主 加入收藏
skysky198344
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2008-10-27
收藏
 问题点数:0 回复次数:8 
指针问题
这个程序,有几点问题,请大家看看,指教一二


#include "stdio.h"
int m[3][3] = { 1,2,3,4,5,6,7,8,9 };
int *pm[3] = { m[0], m[1], m[2] };
int *p = m[0];

main()
{
  int i;
  for( i =0; i < 3; i++ )
     printf( "%d,%d,%d\n", m[i][2-i], *m[i], *m(*(m+i)+i) );
  
  for( i = 0; i < 3; i++ )
     printf( "%d,%d,%d\n", *pm[i], p[i], *(p+i) );           
}


其中不明白的有两点,就是*m[i],这个是什么意思,我觉得完全的矛盾写法。
二、p[i]这个是相当于m[0][i]吗?为什么指针变量可以来这样用?
最后就是这个程序执行不了。
请大家指教

[[it] 本帖最后由 skysky198344 于 2008-11-5 22:45 编辑 [/it]]
搜索更多相关主题的帖子: 指针 
2008-11-05 22:33
lovemimi
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-10-12
收藏
得分:0 
*m[i]可以看做一个二维数组,介意你好好看看课本,这个地方初学会很难的,以后时间长了就好了,而且,其实,以后你就会发现,根本用不到这种变态写法。以后的程序很少用到
2008-11-05 22:44
zglieren303
Rank: 1
等 级:新手上路
帖 子:29
专家分:1
注 册:2008-11-6
收藏
得分:0 
回复 1# 的帖子
你这个程序是自己写的吗?我也感觉指针比较难!!这个程序的目的应该是加深对指针各种表达的理解.我觉得对于理解最重要的是二维的时候指针要考虑是列指针还是行指针,这对它们作了加法之后的具体指向很重要,*与&是他们之间的转换....我也是刚刚把指针的一章看完,还没做过这方面的题.只是觉得书上的例题还都看得懂,你这个程序比较别扭.具体错在哪儿我还说不准,有时间我给你研究一下吧.我看了一些指针在程序中的应用,大多时候可以不用指针,但是我觉得谭浩强说得很好:指针是C的精华,如果想要深入的学习C必须掌握好指针........加油,其实我学C才两个星期,不过还算基本上有所了解了.希望共同进步!!!
2008-11-06 12:38
scheelite
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-11-5
收藏
得分:0 
*m[i]=**(m+i) 是一个变量.
*pm[i]一般多用字符串  ,你定义的是int 型的.
已经定义指针变量p是int型的了,p++移动2个字节,把m[0][0]的地址给了p,p是列指针.




#include<stdio.h>

main()
{int m[3][3] = {1,2,3,4,5,6,7,8,9 },(*p)[3],i,j;
 p=m;
 for(i=0;i<3;i++)
  for(j=0;j<3;j++)
   {if(j==0) printf("\n");
    printf("%d ",*(*(p+i)+j));}


}


[[it] 本帖最后由 scheelite 于 2008-11-6 13:40 编辑 [/it]]
2008-11-06 13:23
风动
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2007-6-25
收藏
得分:0 
*m[i]相当于m[i][0]的写法,也就是说他是第i行第一个,因为2为数组m[i]里面存第i行的地址,而*m[i]正好指在第i行的起始位置。
哈哈!

打框架,做需求分析---敲代码的前提
2008-11-06 14:17
ytb745892798
Rank: 1
来 自:漳平。永福
等 级:新手上路
帖 子:63
专家分:0
注 册:2008-9-29
收藏
得分:0 
如果你想走WINDOWS
建议还是先把指针学好哈

我的梦想是成为一名出色的程序员!
2008-11-06 14:26
skysky198344
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2008-10-27
收藏
得分:0 
[bo][un]zglieren303[/un] 在 2008-11-6 12:38 的发言:[/bo]

你这个程序是自己写的吗?我也感觉指针比较难!!这个程序的目的应该是加深对指针各种表达的理解.我觉得对于理解最重要的是二维的时候指针要考虑是列指针还是行指针,这对它们作了加法之后的具体指向很重要,*与&是他们之 ...


谢谢你的建议,共勉!
2008-11-06 20:41
skysky198344
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2008-10-27
收藏
得分:0 
回复 5# 的帖子
有些许道理
2008-11-06 20:42
skysky198344
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2008-10-27
收藏
得分:0 
回复 4# 的帖子
thanks ,but i have never understand you ,thanks all the same!
2008-11-06 20:45
快速回复:指针问题
数据加载中...
 
   



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

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