目标小甲鱼 发表于 2019-11-7 23:34:51

带你飞第一季038集求教

#include "stdio.h"
#include "stdlib.h"

int main()
{
        int *ptr;
        int num, i;
        printf("请输入待录入的整数:\n");
        scanf("%d",&num);
       
        ptr = (int *)malloc(num * sizeof(int));
       
              
        for (i = 0 ; i < num ; i++)
        {
                printf("请录入第%d个数: " ,i + 1);
                scanf("%d",&ptr);
        }
        printf("你输入的整数是: \n");
       
        for (i = 0 ; i < num ; i++)
        {
                printf("%d\n",ptr);
        }
       
       
}

不是很懂scanf("%d",&ptr); 这个ptr前面为什么要加&?

ptr是地址,地址不是不用加*吗?{:10_266:}

目标小甲鱼 发表于 2019-11-7 23:35:37

自己顶一下,想了好久都想不明白{:5_104:}

ba21 发表于 2019-11-7 23:36:52

哪你又如何看代这个?scanf("%d",&num);

目标小甲鱼 发表于 2019-11-7 23:41:52

ba21 发表于 2019-11-7 23:36
哪你又如何看代这个?scanf("%d",&num);

把变量num的地址取出来,然后把数字放进地址所指向的内存里面

ba21 发表于 2019-11-7 23:44:47

目标小甲鱼 发表于 2019-11-7 23:41
把变量num的地址取出来,然后把数字放进地址所指向的内存里面

scanf("%d",&ptr); 难道就不是这个意思了?

目标小甲鱼 发表于 2019-11-7 23:48:07

ba21 发表于 2019-11-7 23:44
scanf("%d",&ptr); 难道就不是这个意思了?

ptr = (int *)malloc(num * sizeof(int));
返回了一个地址,这个地址给了ptr,&ptr我总是感觉对地址取地址

bin554385863 发表于 2019-11-8 00:05:09

本帖最后由 bin554385863 于 2019-11-8 00:07 编辑

目标小甲鱼 发表于 2019-11-7 23:48
ptr = (int *)malloc(num * sizeof(int));
返回了一个地址,这个地址给了ptr,&ptr我总是感觉对地址取地 ...

要么你买本实体书重新学数组指针,要么百度上查一下,要么再把视频重新看几遍,你这就是没有搞懂数组与指针

ptr不加索引是地址,加上索引难道还是地址?你这既不是二维数组,ptr也不是二级指针,你是怎么认为&ptr是对指针取地址的?
页: [1]
查看完整版本: 带你飞第一季038集求教