c 的 displayArray 函数
displayArray Function For c
我是 c 编程的新手,现在正在研究数组。我看到与 java 不同,您不能使用 Arrays.toString()
方法自动打印它们。我想写一个简单的函数来打印数组。
在程序中,它询问我们数组的大小,当我们写入它时,它询问每个元素的值是多少,然后程序调用 displayArray()
函数将数组打印在单个行。
例如:
Hello. What will be the size of the new array?
3
Enter the 1. element
7
Enter the 2. element
5
Enter the 3. element
1
结果应该是 "Your array is: 7 5 1" 但我得到的不是 "Your array is: 3 6356728 2"。你能帮忙吗?
#include <stdio.h>
void displayArray();
int main()
{
int size;
printf("Hello. What will be the size of the new array?\n");
scanf("%d", &size);
int myarray[size];
for (int i = 0; i < size; i++)
{
printf("Enter the %d. element\n" , (i + 1));
scanf("%d", &myarray[i]);
}
displayArray(myarray[size], size);
return 0;
}
void displayArray(int myarray[], int size)
{
printf("Your array is: ");
for (int i = 0; i < size; i++)
{
printf("%d ", myarray[i]);
}
return;
}
你在函数调用中遇到了问题(你的编译器应该警告过你,稍后阅读脚注)
displayArray(myarray[size], size);
应该是
displayArray(myarray, size);
因为,
- 形式参数和实际参数之间的类型不匹配:你的函数需要一个数组(指向数组第一个元素的指针,准确地说),不是数组的元素。
- undefined behavior. 对于定义为
int myarray[size]
的数组,访问像 myarray[size]
这样的元素是差一的,因为 C 数组是基于 0 的索引。
脚注:
如果您尝试编译 您的 代码,编译器应该会抱怨不匹配。它可能发生
您没有调高编译器警告级别(这是您的错误)
或者,您选择忽略警告(这是您身边的 "offense")
这是初学者常犯的错误。
在调用传递数组的函数时,只需指定要传递的数组名称即可。
我是 c 编程的新手,现在正在研究数组。我看到与 java 不同,您不能使用 Arrays.toString()
方法自动打印它们。我想写一个简单的函数来打印数组。
在程序中,它询问我们数组的大小,当我们写入它时,它询问每个元素的值是多少,然后程序调用 displayArray()
函数将数组打印在单个行。
例如:
Hello. What will be the size of the new array?
3
Enter the 1. element
7
Enter the 2. element
5
Enter the 3. element
1
结果应该是 "Your array is: 7 5 1" 但我得到的不是 "Your array is: 3 6356728 2"。你能帮忙吗?
#include <stdio.h>
void displayArray();
int main()
{
int size;
printf("Hello. What will be the size of the new array?\n");
scanf("%d", &size);
int myarray[size];
for (int i = 0; i < size; i++)
{
printf("Enter the %d. element\n" , (i + 1));
scanf("%d", &myarray[i]);
}
displayArray(myarray[size], size);
return 0;
}
void displayArray(int myarray[], int size)
{
printf("Your array is: ");
for (int i = 0; i < size; i++)
{
printf("%d ", myarray[i]);
}
return;
}
你在函数调用中遇到了问题(你的编译器应该警告过你,稍后阅读脚注)
displayArray(myarray[size], size);
应该是
displayArray(myarray, size);
因为,
- 形式参数和实际参数之间的类型不匹配:你的函数需要一个数组(指向数组第一个元素的指针,准确地说),不是数组的元素。
- undefined behavior. 对于定义为
int myarray[size]
的数组,访问像myarray[size]
这样的元素是差一的,因为 C 数组是基于 0 的索引。
脚注:
如果您尝试编译 您的 代码,编译器应该会抱怨不匹配。它可能发生
您没有调高编译器警告级别(这是您的错误)
或者,您选择忽略警告(这是您身边的 "offense")
这是初学者常犯的错误。 在调用传递数组的函数时,只需指定要传递的数组名称即可。