| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 834 人关注过本帖
标题:C语言:指针与数组问题!学的好的兄弟姐妹们帮帮忙看下有问题吗?谢谢!
只看楼主 加入收藏
weishen2011
Rank: 2
等 级:论坛游民
帖 子:92
专家分:70
注 册:2012-10-16
收藏
得分:0 
以下是引用lxsjzbd在2012-11-23 15:40:17的发言:

是报错了,想了下应该是array是数组名,而且并没有一块儿内存存储array指针,所以不能这么用&array;
应该是:
int *t;
t=array;
p=&t;
自己用一块儿内存存储array


你的意思应该是这样的吧
int array[100];
int *t=array;
p=&t;
其实这和题目当中的表达的意思一样的啊

我觉得错误的地方还是我在6楼说的那个,就是
int **p;
int array[100];
p=&array;
这里实际上定义的p是一个二级指针,而&array是一个数组指针,显然不能将数组指针直接赋值给二级指针
2012-11-23 18:29
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:0 
回复 11楼 weishen2011
&array的类型是数组指针
应该这么用:int(*p)[100]=&array;

[ 本帖最后由 lxsjzbd 于 2012-11-26 14:57 编辑 ]
2012-11-26 14:45
li9386
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2012-11-26
收藏
得分:2 
没问问题,就是纯地址转移操作
这个程序没问题,只是有点绕远
int main(void){
int **p;
int array[100];
p=&array;

array[0]=123;
printf("array[0]:[%d]\n",array[0]);
printf("**p:%d\n",*p);

return 0;
}
运行后也没问题
[root@localhost c3]# ./test2
array[0]:[123]
**p:123
[root@localhost c3]#
先是用一个指向数值指针类型指针去取的一个地址,然后把本来就是地址的array的存储这个地址的内存地址放到p里面去,然后在使用
就是纯地址操作
2012-11-26 14:56
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:2 
回复 13楼 li9386
在vs2010上报错了,说是类型转换错误;
不能把int(*)[100]转换为int **;
所以&array默认是数组指针
2012-11-26 15:01
hfhf2006
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:169
注 册:2012-6-29
收藏
得分:2 
回复 楼主 weishen2011
这个有问题,**p是一个int型的二级指针,他只能指向其他一级指针,也就说存放其他一级指针的地址,数组名是一个地址常量,改成下面的就对了
程序代码:
#include "stdio.h"
void main()
{
    int *q,**p;
    int array[100]={1,1,13};
    q=&array;
    p=&q;
    printf("%d",**p);//输出测试一下,结果是1就对了
}

 
2012-11-26 15:38
危险的屁pi
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-26
收藏
得分:0 
谁传个TC 3.0给我
2012-11-26 15:40
rjvsky
Rank: 3Rank: 3
来 自:陕西西安
等 级:论坛游侠
帖 子:77
专家分:106
注 册:2012-3-6
收藏
得分:2 
我这样跟楼主解决这个问题,int a[100]其中的a的指类是int[100],而对a再取地址,则该地址指向一个int[100]的空间的首地址,而int** p中的p则是一个int内存首地址的首地址  ,也就是说其指向了一个int空间的首地址,所以会报错!!!

企业需要的人才,是真正可以给他们带来经济效益的人,而不是一大堆没用的证书,看淡证书,强化自己···
2012-11-26 15:56
快速回复:C语言:指针与数组问题!学的好的兄弟姐妹们帮帮忙看下有问题吗?谢谢 ...
数据加载中...
 
   



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

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