| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 946 人关注过本帖
标题:=数组和指针的问题
只看楼主 加入收藏
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:16 
=数组和指针的问题
int *p[]={1,3,5,7,9};是错误的说明语句,为什么是错的?
int a[5];*num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};是正确的说明语句,为什么是对的?
int *p[5]和int (*p)[5]有什么不同?
int b[4][6],*p[6];为什么p=b;是正确的赋值语句 而把b[4][6]改成b[4][5]就不是正确的赋值语句了呢?
请教!
搜索更多相关主题的帖子: 指针 
2009-07-27 12:23
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
收藏
得分:0 
完全被弄糊涂了 请知道的指点迷津.......
2009-07-27 12:24
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
收藏
得分:0 
写错了 第二行a[5]后面是,不是;
2009-07-27 12:37
风影空
Rank: 1
等 级:新手上路
帖 子:73
专家分:2
注 册:2009-7-23
收藏
得分:0 
int *p[5] 是数组里面有5个整型的指针
int (*p)[5] 是指针指向5个元素的一维数组
2009-07-27 14:56
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
收藏
得分:0 
main()
{
 int a[3]={1,2,3};
 int (*p)[3]=&a;
 int i;

  for(i=0;i<3;i++)
 printf("%2d",*p++);
 printf("\n");


}那按找我的想法 这个题目输出的应该是1 2 3啊 但不是的 哪错了呢?
2009-07-27 15:32
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:20 
#include <stdio.h>
#include <stdlib.h>

int main()
{
 int a[3]={1,2,3};
 int (*p)[3]=&a;
 int i;
 for(i=0;i<3;i++)
    printf("%2d",*(*p+i)); //改成这样...
 printf("\n");
 system("pause");
 return 0;
}
2009-07-27 15:56
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
收藏
得分:0 
*p+i 相当于a[i]在二维数组中 它是第i行 代表第i行的起始地址 就是说它是一个地址
*(*p+i)就是取其值 可以理解
但我定义的是一维数组啊~
但是结果确实是 1 2 3 还是有点转不过来 再指点下 谢谢....
2009-07-27 16:18
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
你错了,*p+i相当于第0行第i列的地址....它和 *(p+i)不一样...
*(p+i)才是你说的第i行的起始地址....

另外注意你的赋值. int (*p)[3]=&a; a本身就是一个地址.这里你用的是&a
&a就是一个地址的地址,所以 a[3]这个时候你看作a[1][3]好了, &a代表的是指向一个有三个元素的行指针,刚好和(*p)[3]对应, 所以.....

我表达能力不够,希望你能理解..
2009-07-27 16:32
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
收藏
得分:0 
好 有点明白了 还需要揣摩揣摩 不是一两下能想透的事   谢谢你!
2009-07-27 16:43
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
收藏
得分:0 
那int (*p)[3]=&a;和int (*p)[3]=a; 有什么区别?
问题不弄清楚睡不着觉啊,请指教。。。。。
2009-07-27 16:50
快速回复:=数组和指针的问题
数据加载中...
 
   



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

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