再来一波关于数组的操作

举报
ReCclay 发表于 2022/02/22 01:55:36 2022/02/22
【摘要】 感觉以前总结的指针和数组挺多的,emmm,, 后面有时间把他们综合一下。。 #include <stdio.h> #include <stdlib.h> int main...

感觉以前总结的指针和数组挺多的,emmm,,

后面有时间把他们综合一下。。


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[5] = {1,2,3,4,5};
    int *p=(int *)(&a+1);
    printf("%d,%d\n",*(a+1),*(p-1));
    return 0;
}
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
输出
2,5
  
 
  • 1
  • 2

*(a+1) 就是 a[2]
*(p-1) 就是 a[4]

注意一个东西就行了,&a+1 到底表示的是什么?

是下一个a数组,即a[5]


还有这种

#include <stdio.h>
#include <stdlib.h>

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
20
4

Process returned 0 (0x0)   execution time : 0.036 s
Press any key to continue.

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

sizeof(a) 表示的就是该数组所占字节数
sizeof(&a)其实是把它看做指针,然后指针所占的字节数

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/79146026

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。