📜  C |指针基础问题17

📅  最后修改于: 2021-05-29 13:01:17             🧑  作者: Mango

假设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基础课程》。