您当前的位置: 首页 > 

C笔试题指针

发布时间:2021-05-19 07:30:00 ,浏览量:0

解剖几个有点难度的C笔试题

昨天写的那个面试题,今天在群里讨论,有个同学加工了下,变成了新的题目,写出来大家一起看看。

#include 
struct node
{
    int a;int b;int c;
};
int main()
{
    struct node s= {3,5,6};
    int*pt = (int*)(&s+1);
    printf("%d",*(pt-2));
    getchar();
    return 0;
}

求代码输出

&s 是一个结构体地址,也就是结构体指针,对指针的操作加1,减1,指的是加上它的类型大小,&s +1等于&s + sizeof(struct node)。

知道这个之后就比较容易得出答案了。

还有之前的题目,如果是一个数组a[5]={1,2,3,4,5},然后对数组名操作。

#include 

int main()
{
    int a[5]={1,2,3,4,5};
    printf("%d\n",*((int*)(&a+1)-2));
    getchar();
    return 0;
}

求上面的代码输出,这个题目和上面的题目是一样的,对指针操作一定要搞清楚指针的类型,因为指针类型可以不断改变的。

推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    110453博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0803s