| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 495 人关注过本帖
标题:向达人求教,有关数组指针的问题??
只看楼主 加入收藏
wwxx
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-3-26
收藏
 问题点数:0 回复次数:3 
向达人求教,有关数组指针的问题??

#include <stdio.h>
#include <math.h>

main()
{
static int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p;
/*
for (p=a[0];p<a[0]+12;p++)
{if ((p-a[0])%4==0) printf("\n");
printf("%4d",*p);
}
*/

for (p=a;p<a+12;p++)
{if ((p-a)%4==0) printf("\n");
printf("%4d",*p);
}
}


程序如上,我把源程序中的注释掉,自己的写在下面。
源程序运行结果正确,我自己的运行有警告,如下:
警告 e:\c-language\c-code\code04.c 16:指针变换后指向其它类型在main汉书中
对应英文如下:
Warning e:\c-language\c-code\code04.c 16:Suspicious pointer conversion in function main
正确的运行结果如下:
1 3 5 7
9 11 13 15
17 19 21 23

错误的运行结果如下:
1 3 5 7
9 11 13 15
17 19 21 23
1013349 100 0
4864 51412842054
2056539648695887
4357-254 -1 -1
-1 -1 -1 -1
1285 -1 -1 -1
-1 -1 -1 -1
-1-241 5474095
-1 -1-237 767

搜索更多相关主题的帖子: 指针 printf include 
2007-03-29 15:54
wwxx
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-3-26
收藏
得分:0 
2007-03-29 16:35
mayudong1
Rank: 2
等 级:论坛游民
威 望:1
帖 子:348
专家分:21
注 册:2006-4-18
收藏
得分:0 

a是2维数组,p=a[0]的话,p++表示a[0][1];
p=a时,p++表示a[1][0](个人理解).


2007-03-29 17:13
高达
Rank: 1
等 级:新手上路
威 望:1
帖 子:261
专家分:0
注 册:2006-10-27
收藏
得分:0 

我把程序改了一下 LZ你运行下 就大概明白了
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p;

for (p=a[0];p<a[0]+12;p++)
{
printf("\n");
printf("%4d",*p);
printf (" %x",p);
}


for (p=a;p<a+1;p++) /*a+1=a[0]+4*/
{
printf("\n");
printf("%4d",*p);
printf(" %x",p); /* 输出地址 */
}

}


哎 时间....................
2007-03-29 17:15
快速回复:向达人求教,有关数组指针的问题??
数据加载中...
 
   



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

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