心驰神往 发表于 2020-10-27 14:31:04

c语言指针

感觉c语言指针越学越迷糊

乐乐学编程 发表于 2020-10-27 14:33:03

多看,多用

心驰神往 发表于 2020-10-27 14:36:20

乐乐学编程 发表于 2020-10-27 14:33
多看,多用

风过无痕1989 发表于 2020-10-27 15:02:02

一个小程序,帮助你理解:

#include<stdio.h>
int main()
{
    int i,j;
    int (*q);
    int a = {{1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19, 21, 23}};
    q = a;

    for (i = 0; i < 3;i++)                                  // i 控制的是行
    {
      for (j = 0; j < 4;j++)                           // j 控制的是列
      {
            printf("%2d ", *(*(q + i) + j));    // 输出 i 行 j 列的元素值
      }
                printf("\n");
        }
        printf("\n");
    printf("第 0 行的首地址: %p\n",*(q + 0) + 0);            // 输出第 0 行的首地址               
    printf("第 1 行的首地址: %p\n",*(q + 1) + 0);            // 输出第 1 行的首地址
    printf("第 2 行的首地址: %p\n",*(q + 2) + 0);            // 输出第 2 行的首地址
    printf("\n");

}

jackz007 发表于 2020-10-27 15:05:48

      试想一下,你需要从新疆库车去一个陌生的地方取回一个金元宝,你却不知道应该怎么走,具体路线被事先放在一些沿途节点的信箱里。于是,你先打开了位于库车的信箱,只见信中写着“乌鲁木齐”,到了乌鲁木齐,打开信箱,信中写着 “甘肃兰州”,到了甘肃兰州,打开信箱,信中写着 “陕西西安”,到了陕西西安,打开信箱,信中写着 “河南郑州”,到了河南郑州,打开信箱,信中写着 “北京天坛”,最后,在上述一些列向导的指引下,你终于在北京天坛指定的位置,拿到了金元宝。
       在这个例子中,这些沿途的信箱里面保存的并不是元宝,而是目的地的地址,也就是指向元宝的指针的指针(最后一个信箱里面存放的是指向元宝的指针),根据它们提供的线索追踪,最后可以找到目标金元宝。
页: [1]
查看完整版本: c语言指针