gpt4 book ai didi

c - 不兼容的指针类型

转载 作者:太空狗 更新时间:2023-10-29 15:22:52 25 4
gpt4 key购买 nike

我刚开始编程,所以指针和数组让我很困惑。该程序只是将 0 - 9 的随机数分配到数组中并打印出来

(#include <stdio.h> #include <stdlib.h> #include <time.h>)

int function(int *num[]){
int i;
for(i=0; i<10; i++){
srand((unsigned)time(NULL));
*num[i] = rand()%10;
printf("%d", *num[i]);
}
return 0;
}

int main(){
int num[10];
function(&num); // incompatable pointer type (how do i fix this?)
return 0;
}

谢谢

最佳答案

更改您的代码以阅读如下内容:

int function(int num[]){                          
int i;
for(i=0; i<10; i++){
srand((unsigned)time(NULL));
num[i] = rand()%10;
printf("%d", num[i]);
}
return 0;
}

int main(){
int num[10];
function(num);
return 0;
}

main() 中,您正在分配一个包含 10 个整数的数组。对 function(num) 的调用将此数组的地址(从技术上讲,是数组第一个元素的地址)传递给 function()功能。在参数声明中,int num[] 几乎完全等同于 int *num(我会让您思考一下)。最后,当您从函数内部访问 num[] 的元素时,您不需要任何额外的 *。通过使用 num[i],您正在访问 num 指向的数组的第 i 个元素。

记住在 C 中,以下是完全相同的:

num[i]
*(num+i)

关于c - 不兼容的指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4074353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com