2.【C语言】(函数指针||sizeof||笔试题)-0x03.笔试题

时间:2024-01-22 09:18:43

1.

//程序的结果是什么?
int main()
{
	int a[5] = { 1, 2, 3, 4, 5 };
	int* ptr = (int*)(&a + 1);
	printf("%d,%d", *(a + 1), *(ptr - 1));
	return 0;
}

在这里插入图片描述

2.

int main()
{
  int a[4] = { 1, 2, 3, 4 };
  int *ptr1 = (int *)(&a + 1);
  int *ptr2 = (int *)((int)a + 1);
  printf( "%x,%x", ptr1[-1], *ptr2);//%x位16进制
  return 0;
}

在这里插入图片描述

在这里插入图片描述

3.

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述