问题:int a[10];问下面哪些不可以表示a[1]的地址?
A、a+sizeof(int)
B、&a[0] + 1
C、(int*)&a+1
D、(int*)((char*)&a+sizeof(int))
#include <stdio.h>
int main()
{
int a[10] = {
1,2,3,4,5,6,7,8,9,0
};
printf("*******输出地址*******\n");
printf("a[0] = %d\n",a);
printf("a+sizeof(int) = %d\n",a+sizeof(int)); //a+1为地址加4,这里相当于地址加了16
printf("&a[0] + 1 = %d\n",&a[0] + 1); // 这个加1也是地址加4
printf("(int*)&a+1 = %d\n",(int*)&a+1); // 加1也是地址加5
printf("(int*)((char*)&a+sizeof(int)) = %d\n",(int*)((char*)&a+sizeof(int)));//这里先把地址变成指向char类型指针,然后+4就是按char类型长度加,最后变成指向整型
printf("\n");
printf("*******输出值*********\n