假设float占用4个字节,则预测以下程序的输出。
#include
int main()
{
float arr[5] = {12.5, 10.0, 13.5, 90.5, 0.5};
float *ptr1 = &arr[0];
float *ptr2 = ptr1 + 3;
printf("%f ", *ptr2);
printf("%d", ptr2 - ptr1);
return 0;
}
(A) 90.500000
3
(B) 90.500000
12
(C) 10.000000
12
(丁)0.500000
3答案: (A)
说明:当我们将值x添加到指针p时,结果表达式的值为p + x * sizeof(* p),其中sizeof(* p)表示p指向的数据类型的大小。这就是为什么在上面的代码中将ptr2递增以指向arr [3]。减法也适用相同的规则。请注意,只能对指针添加或减去整数值。我们还可以减去或比较两个相同类型的指针。这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。