一道C语言指针的题目
早上看到的题目,但是现在去找没看到了。我当时还把图片放在小号里面了,大家可以看看。
大家看看这个代码输出什么?如果想让它输出77要怎么用指针写呢?
凭记忆写一下
#include "stdio.h"#include "stdint.h"
int main()
{
uint16_t a[12] = {0x11,0x12,0x13,0x14,0x77,0x88};
uint32_t *p = (uint32_t*)&a[0];
p++;
printf("%4X\n", *p);
return 0;
}
a 一个位置的大小是2个字节,p指向的大小是4个字节,所以p++ 执行一次就会跳动4个字节。
这样,他所指向的位置应该是
0x0013, 0x0014
这样的话,直接输出0x00140013
这样大家能明白了不?
评论