四十五.c语言中数组新体验

本文介绍了C语言中的数组概念及其三种初始化方式。数组是一种固定大小、连续内存空间的数据结构,用于存储相同类型的数据。文章通过示例代码展示了不同初始化方法,并解释了如何访问数组中的元素。

45.数组新体验

生活中我们经常会使用到容器,比如我们去超市买东西需要使用购物袋来购买东西。

同样我们在编程中也会需要容器,这个容器有点特殊,它在程序中是一块连续的,大小固定并且里面的数据类型一致的内存空间,它就叫做数组,我们可以理解为大小固定所放物品为同一个购物袋,在购物袋中的物品是按照一定顺序放置的。

声明一个数组:数据类型 数组名称[长度];

c语言中的数组初始化是有三种形式的,分别为:

1.数据类型 数组名称[长度n] = {元素1,元素2...元素n};

2.数据类型 数组名称[] = {元素1,元素2...元素n};

3.数据类型 数组名称[长度n];数组名称[0] = 元素1;数组名称[1] = 元素2;数组名称[n-1] = 元素n

获取数组元素时:数组名称[元素所对应下标];

如:初始化一个数组 int arr[3] = {1,2,3};那么arr[0]就是元素1。

注意:

1.数组的下标均以0开始;

2.数组在初始化的时候,数组内元素的个数不能大于声明的数组长度;

3.如果采用第一种初始化方式,元素个数小于数组的长度时,多余的数组元素初始化为0;

4.在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组元素的初始化值不确定。

任务:

分别用三种方式在代码编辑器中的初始化3个数组,长度分别是3,并且使用格式化输出语句,输出3个数据中的第二元素。

#include<stdio.h>
int main()
{
    int arrFirst[3] = {1,2,3};   //第一种形式
    int arrSecond[] = {1,2,3};   //第二种形式
    int arrThird[3];             //第三种形式
    arrThird[0] = 1;             给arrThird数组每个元素初始化
    arrThird[1] = 2;
    arrThird[2] = 3;
    printf("d\n",arrFirst[1]);   输出第一个数组中的第二个元素
    printf("d\n",arrSecond[1]);  输出第二个数组中的第二个元素
    printf("d\N",arrThird[1]);   输出第三个数组中的第二个元素
    return 0;
}
### C语言 `char` 数组读取方法 在C语言中,可以通过多种方式来读取字符数组的内容。以下是几种常见的读取方法: #### 使用循环逐个访问字符 通过for循环可以遍历整个字符串打印每一个字符。 ```c #include <stdio.h> void read_char_array_with_loop() { char str[] = "Hello"; for(int i = 0; str[i] != &#39;\0&#39;; ++i){ putchar(str[i]); } } ``` 此代码片段展示了如何利用终止符`\0`作为结束条件来迭代访问字符数组中的各个元素[^1]。 #### 利用指针操作读取字符 也可以采用指针的方式来进行更灵活的操作。下面的例子说明了这一点: ```c #include <stdio.h> void read_char_array_with_pointer(){ char string[]="world!"; char *ptr; ptr=string; while(*ptr!=&#39;\0&#39;){ putchar(*ptr); ptr++; } } ``` 这里定义了一个指向字符类型的指针变量`ptr`,将其初始化为指向字符串的第一个位置,在一个while循环里不断移动该指针直到遇到空字符为止[^2]。 #### 调用标准库函数处理字符输入/输出 除了手动编写逻辑外,还可以借助于像`printf()`和`scanf()`这样的内置函数来简化工作流程。对于简单的场景来说这可能是最方便的选择之一。 ```c #include <stdio.h> #define MAX_LENGTH 100 int main(void) { char buffer[MAX_LENGTH]; printf("Enter a line of text:\n"); fgets(buffer, sizeof(buffer), stdin); puts("You entered:"); fputs(buffer , stdout ); return 0; } ``` 上述例子使用了`fgets()`从控制台获取一行文本存入缓冲区buffer内;之后再调用`fputs()`将这些数据原样输出回屏幕。这种方式能够有效防止溢出风险的同时也提供了较好的用户体验[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值