| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 834 人关注过本帖
标题:C语言:指针与数组问题!学的好的兄弟姐妹们帮帮忙看下有问题吗?谢谢!
只看楼主 加入收藏
weishen2011
Rank: 2
等 级:论坛游民
帖 子:92
专家分:70
注 册:2012-10-16
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:16 
C语言:指针与数组问题!学的好的兄弟姐妹们帮帮忙看下有问题吗?谢谢!
int **p;
int array[100];
p=&array;
这三条语句有什么问题吗?有问题的话问题是什么?为什么?
搜索更多相关主题的帖子: C语言 
2012-11-23 00:59
低调的哥额
Rank: 2
来 自:四川广安
等 级:论坛游民
帖 子:49
专家分:30
注 册:2012-6-6
收藏
得分:0 
貌似可以用

目标→黑客←努力 qq群281123877,讨论 奋斗!
2012-11-23 01:14
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 


丢人

[ 本帖最后由 zhu224039 于 2012-11-23 07:05 编辑 ]

我要成为嘿嘿的黑客,替天行道
2012-11-23 06:44
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:2 
没问题
而且如果输出的话,地址值是一样的
printf("p=%p,array=%p,&array=%p",p,array,&array);
因为array是数组第一个元素的首地址,&array是数组的首地址,刚好对应了一个内存单元

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-23 06:52
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
真的可以吗?array本身已经是一个地址了,在取&还有意义吗?

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-23 10:05
weishen2011
Rank: 2
等 级:论坛游民
帖 子:92
专家分:70
注 册:2012-10-16
收藏
得分:0 
以下是引用pauljames在2012-11-23 06:52:38的发言:

没问题
而且如果输出的话,地址值是一样的
printf("p=%p,array=%p,&array=%p",p,array,&array);
因为array是数组第一个元素的首地址,&array是数组的首地址,刚好对应了一个内存单元

我又运行了一遍:
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int **p;
    int array[100];
    p=&array;
    printf("p=%d,&array=%p,array=%p\n",p,&array,array);
    system("pause");
    return 0;
}
发现编译报错啊,说是cannot convert "int (*)[100]"to"int **"in assignment,大概意思就是说不能将数组指针(&array)赋值给二级指针(p),好像说的挺有道理的啊
2012-11-23 11:40
木头人不是人
Rank: 2
等 级:论坛游民
帖 子:8
专家分:19
注 册:2012-11-4
收藏
得分:0 
上面的程序运行没错误
2012-11-23 12:00
ren613
Rank: 3Rank: 3
来 自:宣武
等 级:论坛游侠
帖 子:117
专家分:120
注 册:2012-11-20
收藏
得分:0 

天道酬勤
2012-11-23 12:05
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
必须可以!~~

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-23 12:09
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:0 
是报错了,想了下应该是array是数组名,而且并没有一块儿内存存储array指针,所以不能这么用&array;
应该是:
int *t;
t=array;
p=&t;
自己用一块儿内存存储array

[ 本帖最后由 lxsjzbd 于 2012-11-23 15:42 编辑 ]
2012-11-23 15:40
快速回复:C语言:指针与数组问题!学的好的兄弟姐妹们帮帮忙看下有问题吗?谢谢 ...
数据加载中...
 
   



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

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