int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1); //这里的+1是加的数组a的尺寸,即sizeof(a)=5 * sizeof(int)
// 所以本语句最后ptr赋值的结果是 &(a[0]) +5 ,=(int *)a+5
printf("%d,%d",*(a+1),*(ptr-1));// 本句中 *(a+1)等效为 *( (int *)( &(a[0]) ) +1), 即a[1]
// *(ptr-1)等效为*( (int *)a+5 -1 ), 即*((int *)a+4),即a[4]
所以输出为 printf("%d,%d",a[1],a[4])的结果"2,5"
如果不改变最后一句双引号的位置,输出的为两个随机数
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |