Linux C 编程教程第 7 部分:数组Linux C 编程教程第 7 部分:数组Linux C 编程教程第 7 部分:数组Linux C 编程教程第 7 部分:数组
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux C 编程教程第 7 部分:数组

所以我们已经讨论了 C 编程中的变量概念(此处)。为了快速刷新,变量是可以保存特定类型值的东西——它可以是整数、字符,甚至是浮点数。但是,变量有一个局限性:它们在任何给定时间只能保存一个值。

这意味着如果你想保存多个值,你将不得不处理相同数量的变量。例如,如果你想让一个程序从用户那里接受 10 个整数值然后输出它们,那么你可以这样写:

#include <stdio.h>

int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;
printf("Enter 10 integer values\n");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
scanf("%d",&e);
scanf("%d",&f);
scanf("%d",&g);
scanf("%d",&h);
scanf("%d",&i);
scanf("%d",&j);

printf("You entered the following values:\n");
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);
printf("%d\n",d);
printf("%d\n",e);
printf("%d\n",f);
printf("%d\n",g);
printf("%d\n",h);
printf("%d\n",i);
printf("%d\n",j);


return 0;
}

或者通过以下方式:

#include <stdio.h>

int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;

printf("Enter 10 integer values\n");
scanf("%d %d %d %d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);

printf("You entered the following values:\n");
printf("%d %d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i,j);


return 0;
}

如果根据编写的代码行数进行比较,第二种方法可能会稍微好一些,但还有更好的方法,那就是使用整数数组。

是的,如果需要保存多个相同类型的值,那么您应该选择数组。下面是一个能够容纳 10 个值的整数数组是如何定义的:

int arr[10]

所以在这里,int 指的是数组 arr 将存储的值的类型。方括号中的数字 10 表示 arr 的容量为 10 个值。现在,这是一段使用这个数组的代码:

#include <stdio.h>

int main()
{
int arr[10],i;

printf("Enter 10 integer values\n");

for(i=0;i<10;i++)
scanf("%d",&(arr[i]));

printf("You entered the following values:\n");

for(i=0;i<10;i++)
printf("%d\n",arr[i]);


return 0;
}

请注意,我们已经在我们早期的教程之一中讨论了 scanf 和 printf 函数,因此如果您想了解更多信息,可以参考这些文章。

回到数组,您会发现上面代码中的 for 循环以 i=0 开头。那是因为数组下标(方括号内的数字)总是从零开始。所以在这里,在我们的例子中,arr[0] 指的是用户输入的第一个值,arr[1] 指的是第二个值,依此类推,直到 arr[9] 指的是第 10 个值。

还值得一提的是,您可以轻松访问存储在数组中的每个值的内存地址。这可以使用数组名称来完成,在本例中为 arr。所以如果你在代码中只使用 arr,那么它只是第一个元素的内存地址。

同样,如果要访问第二个元素的内存地址,只要使用arr+1即可。对于第三个元素,使用 arr+2,依此类推。下面的一段代码及其输出应该会给你一个更好的主意。

#include <stdio.h>

int main()
{
int arr[10],i;

printf("The address of first and second values are: %u %u\n", arr, arr+1);

return 0;
}

这是输出:

The address of first and second values are: 2904035888 2904035892

如您所见,这些地址中有 4 个字节的差异 - 那是因为一个整数值在我的系统上占用 4 个字节。

在本教程中,我们讨论了数组的基础知识。请注意,我们仅给出了整数数组的示例。您也可以拥有其他类型的数组,例如字符。尝试我们在本教程中使用的示例,如果您有任何疑问或疑问,请在下面的评论部分告诉我们。

©2015-2025 艾丽卡 support@alaica.com