【C语言】数组

【C语言】数组:

  • 存储一系列相同类型的数据。
  • 内存的地址连续。最低的地址对应第一个数据,最高的地址对应最后一个数据。
  • 可用索引访问。第一个数据索引号为0。
  • 也可以用指针处理数组。一般,数组名自动转换为指向数组首元素的指针。

(1-1)声明数组,为数组赋值

声明数组:元素类型 数组名[元素数量];

为数组赋值(索引号从0开始):数组名[索引号] = 数据;

int numbers[5];         // 声明数组
numbers[0] = 1;         // 为数组中第一个元素赋值
numbers[1] = 2;         // 为数组中第二个元素赋值
...
numbers[4] = 5;         // 为数组中第五个元素赋值

(1-2)初始化数组

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

元素数量可省略,元素数量默认为数组初始化时的元素个数。
 ② 元素类型 数组名[ ] = {数据1, 数据2,...}; 

// 初始化数组
int numbers[5] = {1,2,3,4,5};
int numbers[] = {1,2,3,4,5};

(2)访问数组元素:数组名[索引号]

int numbers[] = {1,2,3,4,5};
numbers[2]                  // 访问数组第3个元素(索引号从0开始)


例如:
#include <stdio.h>
int main(void)
{
    int numbers[5];
    numbers[0] = 1;
    numbers[1] = 2;
    numbers[2] = 3;
    numbers[3] = 4;
    numbers[4] = 5;
    printf("%d\n", numbers[2]);
    return 0;
}

#include <stdio.h>
int main(void)
{
    int numbers[] = {1,2,3,4,5};
    int k = numbers[2];
    printf("%d\n", k);
    return 0;
}

(3)获取数组长度

数组长度不是数组元素的数量,而是数组的存储大小(单位byte)。数组元素的数量=数组长度/每一个元素的长度。

sizeof(数组名);       // 获取数组长度

例如:
#include <stdio.h>

int main(void)
{
    int numbers[] = {1,2,3,4,5};
    int length = sizeof(numbers);
    int num = length /sizeof(numbers[0]);
    printf("numbers's length is %d, numbers's elements are %d\n", length, num);
    return 0;
}

// 结果为:64位的计算机int类型4bytes,5个int数据共20bytes
// numbers's length is 20, numbers's elements are 5

补充:【C语言】字符数组:

1-1、初始化数组:char 数组名[字符数量] = 字符串;

注意:① char:单个字符,基本数据类型。字符串:一串字符,C语言不存在字符串数据类型。② 字符串的结尾符是\0,因此字符数量+1。

#include <stdio.h>

int main(void)
{
    char s[6] = "hello";     // 字符串结尾是\0
    printf("%s,the first char is %c\n", s, s[0]);
    return 0;
}

1-2、复制字符串到字符数组的存储区域

#include <stdio.h>
#include <string.h>

int main(void)
{
    char s[6];                  // 为数组提供存储空间,注意字符串结尾是\0
    strcpy(s, "hello");         // 复制字符串,遇到结束符\0就停止    
    printf("%s,the first char is %c\n", s, s[0]);
    return 0;
}

1-3、指针变量。此处的指针一开始没有设置指向,不存在指向混乱。

指针变量是用来存放内存地址的变量。需提前声明:基类型 *指针变量名;

#include <stdio.h>

int main(void)
{
    char *s;          // 指针变量声明
    s = "hello";
    printf("%s,the first char is %c\n", s, s[0]);
    return 0;
}

 可能遇到的报错:

解决:尝试使用以上3种方法操作字符数组。

          以下操作是错误的。

2、获取数组中的字符个数:即字符数组中有多少个字符(不包括结尾符\0)

      标准库string.h中的strlen(字符数组)

#include <stdio.h>
#include <string.h>

int main(void)
{
    char s[6] = "hello";
    printf("%d\n", strlen(s));           // 获取字符个数
    return 0;
}

// 结果为:
5


 

相关推荐

  1. C语言数组语法解剖

    2024-03-22 19:38:01       51 阅读
  2. C语言 数组指针

    2024-03-22 19:38:01       68 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-22 19:38:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-22 19:38:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-22 19:38:01       87 阅读
  4. Python语言-面向对象

    2024-03-22 19:38:01       96 阅读

热门阅读

  1. 位运算算法

    2024-03-22 19:38:01       41 阅读
  2. Python的反射机制

    2024-03-22 19:38:01       41 阅读
  3. python数据库封装调用

    2024-03-22 19:38:01       45 阅读
  4. 从SQL质量管理体系来看SQL审核(2) - SQL质量标准

    2024-03-22 19:38:01       46 阅读
  5. AIGC之MIDjourney使用指南

    2024-03-22 19:38:01       38 阅读
  6. vscode中编写Markdown

    2024-03-22 19:38:01       37 阅读
  7. C++面向对象:const的使用

    2024-03-22 19:38:01       39 阅读
  8. 支持CloudFlare的免费域名分享

    2024-03-22 19:38:01       41 阅读
  9. 解锁新功能,Dynadot现支持BITPAY平台虚拟货币

    2024-03-22 19:38:01       41 阅读