| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 672 人关注过本帖
标题:二级指针的问题
只看楼主 加入收藏
fdcumt
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-9-16
结帖率:0
收藏
 问题点数:0 回复次数:8 
二级指针的问题
#include <iostream>
using namespace std;
int main()
{
    int **p;
    int *p1,*p2,*p3,*p4;
    int a[]={1,2,3,4};
    p1=&a[0];p2=&a[1];p3=&a[2];p4=&a[3];
    p=&p1;
    p[0]=p1;p[1]=p2;p[2]=p3;p[3]=p4;
    cout<<*p1<<' '<<*p2<<' '<<*p3<<' '<<*p4<<endl;
    cout<<p[0]<<' '<<p[1]<<' '<<p[2]<<' '<<p[3]<<endl;
    cout<<p<<endl;
    cout<<*(p[0])<<' '<<*(p[1])<<' '<<*(p[2])<<' '<<*(p[3])<<endl;
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include 
2011-11-26 12:38
我是菜鸟C
Rank: 4
等 级:业余侠客
帖 子:74
专家分:200
注 册:2011-3-27
收藏
得分:0 
指针给指针赋值好似有问题吧。。。
模糊中,同求楼下高人。。
2011-11-28 08:26
game9688
Rank: 2
等 级:论坛游民
帖 子:26
专家分:13
注 册:2008-4-26
收藏
得分:0 
正在学习中.解完这题对我很有帮助.
#include <iostream>
using namespace std;
int main()
{
    int **p[3];
    int *p1,*p2,*p3,*p4;
    int a[]={1,2,3,4};
    p1=&a[0];p2=&a[1];p3=&a[2];p4=&a[3];
   // p=&p1;
    p[0]=&p1;p[1]=&p2;p[2]=&p3;p[3]=&p4;
    cout<<*p1<<' '<<*p2<<' '<<*p3<<' '<<*p4<<endl;
    cout<<p1<<' '<<p2<<' '<<p3<<' '<<p4<<endl<<endl;
    cout<<p[0]<<' '<<p[1]<<' '<<p[2]<<' '<<p[3]<<endl;
    cout<<p<<endl<<endl;
    cout<<*p[0]<<' '<<*p[1]<<' '<<*p[2]<<' '<<*p[3]<<endl;
    cout<<**p[0]<<' '<<**p[1]<<' '<<**p[2]<<' '<<**p[3]<<endl;

    return 0;
}
2011-11-28 21:22
kuangdang178
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2011-11-4
收藏
得分:0 
貌似lz没把二级指针数组定义出来,
程序代码:
#include <iostream>
using namespace std;
int main()
{
    int **p[3];
    int *p1,*p2,*p3,*p4;
    int a[]={1,2,3,4};
    p1=&a[0];p2=&a[1];p3=&a[2];p4=&a[3];
    p[0]=&p1;
    p[0]=&p1;p[1]=&p2;p[2]=&p3;p[3]=&p4;
    cout<<*p1<<' '<<*p2<<' '<<*p3<<' '<<*p4<<endl;
    cout<<p[0]<<' '<<p[1]<<' '<<p[2]<<' '<<p[3]<<endl;
    cout<<p<<endl;
    cout<<*(p[0])<<' '<<*(p[1])<<' '<<*(p[2])<<' '<<*(p[3])<<endl;

 cout<<**p[0]<<' '<<**p[1]<<' '<<**p[2]<<' '<<**p[3]<<endl;
    return 0;
} 还有就是二级指针指向一概是p1,p2等的地址
2011-11-28 23:19
感冒九十九
Rank: 1
来 自:江西南昌
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-11-28
收藏
得分:0 
输出流中单引号要改为双引号二级指针定义为数组
2011-11-30 13:07
BianChengNan
Rank: 8Rank: 8
等 级:贵宾
威 望:13
帖 子:302
专家分:972
注 册:2011-11-30
收藏
得分:0 
以下是引用fdcumt在2011-11-26 12:38:11的发言:

#include
using namespace std;
int main()
{
    int **p;
    int *p1,*p2,*p3,*p4;
    int a[]={1,2,3,4};
    p1=&a[0];p2=&a[1];p3=&a[2];p4=&a[3];
    p=&p1;
    p[0]=p1;p[1]=p2;p[2]=p3;p[3]=p4;
    cout<<*p1<<' '<<*p2<<' '<<*p3<<' '<<*p4<
关键是楼主想干什么

我的群:149544757 C/C++/Assembly 喜欢交流的朋友进,进群请写消息
2011-11-30 17:12
youlishen
Rank: 2
等 级:论坛游民
帖 子:6
专家分:14
注 册:2011-9-25
收藏
得分:0 
楼主,要定义连续的数组才能用指针像你那样的访问,比如:int *p1,*p2,*p3,*p4;定义成int *p1[4];然后再int **p=&p1[0];
那么就可以p[0],p[1],p[2],p[3]这种访问了
四楼操作也很好,不过貌似是int **p[4]才行
2011-11-30 17:38
共和国鹰派
Rank: 3Rank: 3
来 自:山东
等 级:论坛游侠
帖 子:37
专家分:119
注 册:2011-10-20
收藏
得分:0 
如果要使用p[0]=p1;p[1]=p2;p[2]=p3;p[3]=p4;应该需要分配空间,p=new int*[4];这样p对应的是一个指向指针数组的指针,而&p1是一个指向指针的指针两者不匹配所以可能这里出错了,把这句去掉就可以了
2011-12-01 14:15
共和国鹰派
Rank: 3Rank: 3
来 自:山东
等 级:论坛游侠
帖 子:37
专家分:119
注 册:2011-10-20
收藏
得分:0 
可以看一下《C陷阱与缺陷》里面有详细的解释
2011-12-01 14:16
快速回复:二级指针的问题
数据加载中...
 
   



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

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