鱼C论坛

 找回密码
 立即注册
查看: 3589|回复: 5

请问这个代码是什么意思?

[复制链接]
发表于 2012-10-19 21:19:35 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
void main()
{
        int a[5]={1,2,3,4,5};
        int *ptr=(int *)(&a+1);
        printf("%d,%d",*(a+1),*(ptr-2));
}


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-19 22:34:16 | 显示全部楼层
#include <stdio.h>
void main()
{
        int a[5]={1,2,3,4,5};
        int *ptr=(int *)(&a+1);/*&a指向整个数组,&a+1是数组的下一个位置,(int *)转换指针类型为int。*/
        printf("%d,%d",*(a+1),*(ptr-2));/*  *(a+1)是数组的第二个元素2,*(ptr-2)是数组倒数第二个4.*/:lol
}


补充内容 (2012-10-19 22:34):
没试代码,应该是这样的,其实指针很容易的

补充内容 (2012-10-19 22:45):
我已经学完c,c++后面的类快学完了,准备学数据结构。有兴趣大家讨论下指针,我还有很多变态的用法,交流下
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-19 22:56:01 | 显示全部楼层
我先出个题,算是开头,以下的注释是输出的结果,为什么是这个结果?
#include <iostream.h>
void main()
{
        int a[2][2][2]={1,2,3,4,5,6,7,8};
        int (*p)[2];
        p=a[0];
        cout<<**(p+1)<<endl;//结果是3
                cout<<**p<<endl;//结果是1
                cout<<*(*p+1)<<endl;//结果是2
}
:(没人玩就算了,。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-19 22:56:46 | 显示全部楼层

楼主的题太简单了,试试我这个
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-10-20 11:45:02 | 显示全部楼层
消失在黑暗中 发表于 2012-10-19 22:56
楼主的题太简单了,试试我这个

&a指向整个数组,&a+1是数组的下一个位置,这个下一个位置在哪?
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-10-20 11:45:46 | 显示全部楼层
消失在黑暗中 发表于 2012-10-19 22:56
我先出个题,算是开头,以下的注释是输出的结果,为什么是这个结果?
#include
void main()

我试试  不懂在问你  ;P
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-15 18:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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