yunling 发表于 2022-10-17 17:51:19

c语言利用指针向数组里插入数据

大佬们,我最近正在学指针,想利用指针向数组里插入数据但是运行结果不对!


#include<stdio.h>
int main()
{   
   
    int arr={};
    int *p=arr;
    for (int i = 0; i < 10; i++)
    {
      
      *(p++) = i;
      printf("%d\n",*p);
    }
   
    return 0;
}

大佬给看一眼!

jackz007 发表于 2022-10-17 18:10:38

本帖最后由 jackz007 于 2022-10-17 18:26 编辑

#include<stdio.h>
int main()
{   
   
    int arr={}                  ;
    int * p= arr                      ;
    for (int i = 0 ; i < 10 ; i ++)
    {
         * (p + i) = i                ; // 用 * (p + i ) 索引一维数组元素,p ++ 会把指针变跑,当然,如果写成 p 意思和 * (p + i) 是完全一样的。
    }
    for (int i = 0 ; i < 10 ; i ++)
    {
         printf("%d\n" , * (p + i))   ;
    }   
    return 0;
}

yunling 发表于 2022-10-18 08:29:14

jackz007 发表于 2022-10-17 18:10


感谢大佬,我理解的是p++ 就是将p所指的地址赠一也就是数组的第一个元素地址增一 ,然后每次都增,这样不就可以插入了嘛,

jackz007 发表于 2022-10-18 08:32:31

yunling 发表于 2022-10-18 08:29
感谢大佬,我理解的是p++ 就是将p所指的地址赠一也就是数组的第一个元素地址增一 ,然后每次都增,这样不 ...

   p 本身是个变量,和整型数一样,执行 p ++ 就是在执行 p = p + 1,p 的值当然会变。

yunling 发表于 2022-10-18 08:42:28

jackz007 发表于 2022-10-18 08:32
p 本身是个变量,和整型数一样,执行 p ++ 就是在执行 p = p + 1,p 的值当然会变。

恍然大悟应该是&p!!! 我待会试一下,感谢大佬!

yunling 发表于 2022-10-18 08:47:26

jackz007 发表于 2022-10-18 08:32
p 本身是个变量,和整型数一样,执行 p ++ 就是在执行 p = p + 1,p 的值当然会变。

大佬我刚试了一下&p++ 还是不行哈哈 还是按你说的来把
页: [1]
查看完整版本: c语言利用指针向数组里插入数据