| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2010 人关注过本帖, 1 人收藏
标题:关于 int (*a)[10] 这个语句的问题
取消只看楼主 加入收藏
木胖子
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2018-12-17
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:1 
关于 int (*a)[10] 这个语句的问题
具体问题如下,一个指向数组的指针
定义:int(*p)[10];
赋值时候,将它指向一个具有10个元素的int型数组a;
打印p出现如下效果。   
程序代码:
void main()
{
    int i;
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    int (*p)[10];
    p = a;
    for(i=0;i<10;i++)
    {
        printf("%d\n",*(p+i));
        
    }
    system("pause");
    
}

图片附件: 游客没有浏览图片的权限,请 登录注册

图1


发现p=a出有一个警告:int *型   分配给 int(*)[10]类型。
于是改进一下用强制转换,然而打印出来,仍旧是这个样子。
程序代码:
#include <stdio.h>
#include <stdlib.h>

void main()
{
    int i;
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    int (*p)[10];
    p = (int (*)[10])a;
    for(i=0;i<10;i++)
    {
        printf("%d\n",*(p+i));
        
    }
    system("pause");
    
}

图片附件: 游客没有浏览图片的权限,请 登录注册

图2


最后,用上了二级指针,正常了。
程序代码:
#include <stdio.h>
#include <stdlib.h>

void main()
{
    int i;
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    int (*p)[10];
    p = &a;
    for(i=0;i<10;i++)
    {
        printf("%d\n",*(*p+i));
        
    }
    system("pause");
    
}

图片附件: 游客没有浏览图片的权限,请 登录注册

图3

求问,图1,2问题出在哪,有人能帮我解释一下嘛?实在是搞不懂了,不是等着喂,真的能力尽了。

[此贴子已经被作者于2018-12-17 21:23编辑过]

搜索更多相关主题的帖子: int main i++ system include 
2018-12-17 21:12
木胖子
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2018-12-17
收藏
得分:0 
我自己顶一下贴(不允许的话希望版主警告我,新人)!

[此贴子已经被作者于2018-12-17 21:59编辑过]

2018-12-17 21:20
快速回复:关于 int (*a)[10] 这个语句的问题
数据加载中...
 
   



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

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