谁能解释一下C指针

标签 c pointers

有人可以解释为什么 v[2] 最终的值为 -3,而不是空,或者 25 吗?

#include <stdio.h>

 int main ()
 {
   int v[5];
   int *z = &v[0];
   *z=12;
   z++;
   *z=16;
   z++;
   *z=-3;
   z++;
   *z=25;

   printf ("%d", v[2]);
   return 0;
 }

最佳答案

#include <stdio.h>
int main ()
{
    int v[5];
    int *z = &v[0]; // z points to v[0]
    *z=12; // v[0] = 12
    z++;   // z points to v[1] now
    *z=16; // v[1] = 16
    z++;   // z points to v[2] now
    *z=-3; // etc
    z++;   // etc
    *z=25; // etc
}

关于谁能解释一下C指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14367597/

相关文章:

c - 根据字长打印直方图 (C)

c - 为什么我在第二次搜索文件时收到段错误错误?

c - 我有接受地址的函数,但我想打印变量的值..我该怎么办?

c++ - 在 C++ 中,我无法掌握指针和类

c++ - 为什么我的指针不能用 Arduino 正确初始化?

C 指针和数组

c - 这个 Makefile 正确吗?

c - 如何将 (long *) 转换为二维 long 数组

c++ - 删除注册表项下的所有值而不删除子项

c - 简单的 C 内核 char 指针不工作