| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 824 人关注过本帖
标题:int *p[4]有啥用
只看楼主 加入收藏
a14290719
Rank: 1
等 级:禁止发言
帖 子:39
专家分:0
注 册:2010-7-13
结帖率:58.33%
收藏
 问题点数:0 回复次数:4 
int *p[4]有啥用
提示: 作者被禁止或删除 内容自动屏蔽
2011-11-29 12:55
lijunbo
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2011-10-5
收藏
得分:0 
以下是引用a14290719在2011-11-29 12:55:08的发言:

int a[3][4]={{1,2,3,4},{1,2,3,4},{1,2,3,4}};
    int (*p1)[4]=a;
    int *p[4];  这个*p[4] 怎么用   怎么给他赋值

int *p[4] 这是一个数组定义式,共4个元素,每个元素的类型都是int *型(即数组的元素是指向int的指针)
注意:int (*p)[4] 是一个指针定义,这个指针指向的是一个由4个元素(int型)组成的数组。
我当时也在这个概念上纠结了很久。
其实只要理解下标操作符具有高优先级,一切都容易明白了


[ 本帖最后由 lijunbo 于 2011-11-30 02:25 编辑 ]
2011-11-30 02:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
    int a[3][4] = { {1,2,3,4}, {1,2,3,4}, {1,2,3,4} };

    int (*p1)[4] = a;

    int* p2[3] = { a[0], a[1], a[2] };
2011-11-30 08:20
我是菜鸟C
Rank: 4
等 级:业余侠客
帖 子:74
专家分:200
注 册:2011-3-27
收藏
得分:0 
int a[3][4]={{1,2,3,4},{1,2,3,4},{1,2,3,4}};
    int (*p1)[4]=a;//这个是数组指针,他的类型为int(*)【4】,每个指针指向二维数组的一排!
    int *p[4];  //这个为指针数组,包括四个指针,*p[0],*p[1],*p[2],*p[3],其类型为int *【4】,每个指针指向一个元素,这里不能用来初始化,因为这个指针只是指向一维数组的指针,而实参为二维数组,除非你先转换。这种一维数组指针常常用来指向字符串!!!
2011-11-30 09:01
梦ambious
Rank: 2
等 级:论坛游民
帖 子:27
专家分:71
注 册:2011-11-25
收藏
得分:0 
int *p[4]这是在声明一个指针数组,还没有初始化,要先初始化了才能用,而如果是int *p1[4],你前面用的是二维数组,所以后面也应该用int*p[][]类型,然后就像二维数组那样用就行了
2011-11-30 17:20
快速回复:int *p[4]有啥用
数据加载中...
 
   



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

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