鱼C论坛

 找回密码
 立即注册
查看: 1322|回复: 4

关于类型说明符 (*数组名称)【长度】来定义数组指针变量的问题?

[复制链接]
发表于 2015-6-8 10:56:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 醉拳八哥 于 2015-6-8 14:39 编辑

#include <stdio.h>
int compare(int,int);
void main ()

{
    int array[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
        int (*array1)[4];
        int i,j;[qq]1211377599[/qq]
        printf("input i=");
        scanf("%d",&i);
        i=compare(i,3);
        printf("input j=");
    scanf("%d",&j);
        j=compare(j,4);
        printf("the num =%d",*(*(array1+i)+j));
}
int compare(int i,int j)
{
    while (i<0 || i>j)
        {
            printf("piease input again\n ");
                scanf("%d",&i);
               

        }
    return (i);
}

提示C:\Program Files\Microsoft Visual Studio\MyProjects\44\44.c(15) : warning C4700: local variable 'array1' used without having been initialized;
为什么呢,完全按照小甲鱼的视频来的?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-6-8 16:49:07 | 显示全部楼层
解决办法 1: *(*(array1+i)+j) 改为 *(*(array+i)+j)
解决办法 2: int (*array1)[4]; 改为 int (*array1)[4]=array;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-8 17:25:36 | 显示全部楼层
哥斯拉不说话 发表于 2015-6-8 16:49
解决办法 1: *(*(array1+i)+j) 改为 *(*(array+i)+j)
解决办法 2: int (*array1)[4]; 改为 int (*array1 ...

也就是说 int (*array1)[4]需要给一个初始地址是吧?可是int (*array1)[4]定义的是一个数组啊,怎么能和地址等价呢?是不是说int array【】编译的时候指向一个固定空间,而int (*array1)[4]编译的时候指向的是一个地址指针?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-8 17:28:09 | 显示全部楼层
另外怎么给鱼币呢,很多同学问有鱼币吗,我也觉得大家的热心回答让我很感动,想用鱼币表示一下谢意??{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-8 22:31:03 | 显示全部楼层
醉拳八哥 发表于 2015-6-8 17:25
也就是说 int (*array1)[4]需要给一个初始地址是吧?可是int (*array1)[4]定义的是一个数组啊,怎么能和 ...

你是想通过一个行指针来引用并输出一个二维数组,但你并没有让你的行指针指向任何东西,还非要它输出它所指向的地址的内容,这不是强人所难吗,人家当然不干了,至于 int (*array1)[4] 我的理解是定义了一个指针arrary1,这个指针指向一个含有 4 个整形元素的数组,纯属个人理解,有什么错误的请原谅哈,我也是新手。你问的后边两句我没看懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 01:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表