我刚刚开始学习C代码,我已经给出了一个练习来创建两个函数,您可以在我的代码中看到createData()
和udskriv()
,其中createData
应该创建一个数组使用用户输入,并且udskriv
方法应该使用指针来打印它。C:通过指针打印数组给出错误的数字
但是,我的代码只给了我1或2的正确数字,然后通常打印时为0和一个非常高的数字(如10位数字)。通过运行main
方法中的循环,我能够通过无功能的方式实现它,但我无法使它与它们一起工作。
我有一些Java的经验,这可能会帮助你解释为什么我做错了什么。
#include <stdio.h>
static int* createData()
{
int test[4];
int c;
int *ptr;
printf("Indtast 4 tal, 1 af gangen");
for (c = 0; c < 4; c++)
{
scanf("%d", &test[c]);
}
ptr=&test;
return (ptr);
}
static void udskriv(int* ptr)
{
int i;
for (i=0;i<4;i++)
{
printf("%d\n",*ptr++);
}
}
int main(void)
{
udskriv(createData());
}
你在看哪本书?你无法通过反复试验来学习C;这样做可能具有误导性和危险性,而且您这样做是错误的这一事实应该证明试验和错误不起作用。你注意到这个问题其实是一个好结果;很多时候,人们在通过反复试验学习时都没有注意到问题。如果你还没有书,我可以为你推荐K&R 2E。 – Sebivor
btw他是对的:_我对Java有一些经验_解释他的错:___不像Java__那样使用C!他们使用完全不同的数据处理! – LittleByBlue