| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 420 人关注过本帖
标题:[讨论]关于二级指针问题!
只看楼主 加入收藏
devfhpgah
Rank: 1
来 自:江西
等 级:新手上路
帖 子:204
专家分:0
注 册:2007-8-16
收藏
 问题点数:0 回复次数:6 
[讨论]关于二级指针问题!
百年不亮说:“a[2][3]中的a是int **,a[0]是int *,那为什么不能将蓝色字体中的语句改为“int **p=a”呢?
#include<stdio.h>
int BubbleUp(int **array,int length);
int main()
{
int a[2][3]={3,4,7,8,2,1};
int *ptr=a[0];
int i;
int **p=&ptr;
BubbleUp(ptr,6);
for(i=0;i<6;i++)
printf("%d\t",ptr[i]);
getchar();
return 0;

}

int BubbleUp(int **array,int length)
{
int i,j, temp;
for(i=0;i<length;i++)
for(j=0;j<length-i-1;j++)
if(array[j]>array[j+1])
{
temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}

return 0;
}

搜索更多相关主题的帖子: 指针 
2007-11-14 21:49
lonelyfree
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-10-13
收藏
得分:0 

*(**p)=*p=*&ptr
而*a=a[0];
所以不能换~~

[此贴子已经被作者于2007-11-14 22:22:03编辑过]

2007-11-14 22:21
lw_China
Rank: 1
来 自:peking
等 级:新手上路
帖 子:73
专家分:0
注 册:2007-11-4
收藏
得分:0 
你写错了..ptr指向的只是 int *.

在这里推荐一本书 <The C Programming Language>
2007-11-14 22:44
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
int a[2][3]={3,4,7,8,2,1};
int (*p)[3];


// a 是指向 3 个啊int 类型的指针 //

—>〉Sun〈<—
2007-11-14 22:53
chengyukyo1
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-10-18
收藏
得分:0 
lonely 好强而且很热心 你现在是学生还是?
2007-11-15 09:14
nianshi
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-7
收藏
得分:0 
二级指针不是数组指针

二级指针是指向指针的指针 int *p,**s;s=&p;

数组指针是指向数组的指针 int a[3][4],(*p)[4];p=a;

行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2007-11-15 09:28
devfhpgah
Rank: 1
来 自:江西
等 级:新手上路
帖 子:204
专家分:0
注 册:2007-8-16
收藏
得分:0 

好像明白了一点,但是为什么可以: int *p=(int *)a;而不可以:int **p=(int **)a;


努力才会成功!
2007-11-15 10:16
快速回复:[讨论]关于二级指针问题!
数据加载中...
 
   



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

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