首页 > 其他分享 >C语言中的数组

C语言中的数组

时间:2024-11-11 18:19:18浏览次数:3  
标签:初始化 arr int 创建 C语言 二维 数组

数组在C语言中的应用场景非常非常多,例如:(作者用C语言写过一个三字棋小游戏详情可见链接)

https://blog.csdn.net/2401_87984738/article/details/143487668?sharetype=blog&shareId=143487668&sharerefer=APP&sharesource=2401_87984738&sharefrom=link

相信你们在学完今天这节数组以后,也可以独立完成上面的三子棋小游戏。

废话不多说,我们直接开始上干货!

一、一维数组的创建和初始化

1.1数组的创建

所谓数组,并不是狭义上的只可以存放数字,而是可以将一组相同类型元素的集合

数组的创建方式如下

int arr_num[3] = {1, 2, 3}; // 存放数字的数组

char arr_ch[] = "Hello, world"; // 存放字符串

char arr[2] = {'H', 'i'}; // 存放字符

int* arr_ptr[] = {}; // 存放指针的数组(可以先不用管,以后的写指针的时候会单独说)
注: 数组创建,在 C99 标准之前, [] 中要给一个 常量 才可以,不能使用变量。在 C99 标准支持了变长数 组的概念。

 

1.2 数组的初始化 数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。 看代码:

上面就是数组初始化的几种方式,数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。

1.3数组的使用

数组中的每一个元素都有下标,但是与我们生活中的从1开始不一样,数组中的下标是从0开始的,这一点我们一定要注意,防止在使用数组的元素时造成溢出。

下面是使用数组的一个案例。

顺序打印一个数组的元素

#include<stdio.h>
int main()
{
    int arr[5] = {1, 2, 3, 4, 5};
    int i = 0;
    for(i = 0; i < 5; i++)// 注意这里是小于5,如果i大于等于5时会打印随机值
    {
        printf("%d ",arr[i]); // 顺序打印数组中的每一个元素
    }
    return 0;
}

 

总结: 1. 数组是使用下标来访问的,下标是从 0 开始。 2. 数组的大小可以通过计算得到。 2. 二维数组的创建和初始化 2.1 二维数组的创建
int arr_num[3][3];

char arr_ch[3][3];

double arr[3][3];

// 以上操作均是创建一个3X3的二维数组

2.2 二维数组的初始化

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


// 二维数组初始化时,可以不初始化行,但是必须要有几列

2.3 二维数组的使用

#include <stdio.h>
int main()
{
     int arr[3][4] = {0};
     int i = 0;
     for(i=0; i<3; i++)
     {
         int j = 0;
         for(j=0; j<4; j++)
         {
            arr[i][j] = i*4+j;
         }
    for(i=0; i<3; i++)
     {
         int j = 0;
         for(j=0; j<4; j++)
         {
             printf("%d ", arr[i][j]);
         }
     }
 return 0;
}

以上就是数组所有的基本知识了,感谢读者阅读,记得点赞加关注奥@...@

标签:初始化,arr,int,创建,C语言,二维,数组
From: https://blog.csdn.net/2401_87984738/article/details/143598373

相关文章

  • 2024年全国高校计算机能力挑战赛C语言计算机能力挑战赛赛前模拟
    2024年全国高校计算机能力挑战赛C语言计算机能力挑战赛赛前模拟18拉手游戏某个班级共n(2<n<100)人玩报数游戏,同学们最初手拉手围成一圈。小明最开始站在第m(0<m<n)个位置,现在从圈内第一个位置开始报数,但凡报到3就退出圈子,问小明是第几个退出圈子的人?输入格式:一行输入两个......
  • 4-3-2.C# 数据容器 - Dictionary 扩展(Dictionary 存储对象的特性、Dictionary 与数组
    Dictionary概述Dictionary<TKey,TValue>存储的是键值对(Key-Value),通过键(Key)来存储或修改值(Value)Dictionary<TKey,TValue>存储的键值对是无序的Dictionary<TKey,TValue>存储的键是不可重复的Dictionary<TKey,TValue>支持泛型,可以指定存储的键值对的类型D......
  • 代码随想录算法训练营day43| 300.最长递增子序列 674. 最长连续递增序列 718. 最长
    学习资料:https://programmercarl.com/0300.最长上升子序列.html#算法公开课动态规划系列之子序列学习记录300.最长递增子序列(长度最少为1;dp[i]代表到i为止的最长子序列的长度;i的值根据i之前比如j的值来判断;每个地方都有可能获得最长长度)点击查看代码classSolution:def......
  • C语言网题目 1004: [递归]母牛的故事
    题目描述有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入格式输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。n=0表示输入数据的结束,不做......
  • 二维数组
    一维数组定义:inta[N];初始化:inta[3]={1,2,3};for(i=0;i<3;i++){scanf("%d",&a[i]);}储存结果:数组元素在内存中存放是连续的实例:逆序存放冒泡选择排序二分查找二维数组inta[2][3];//三行四列inta[2][3]={{1,2,3},{4,5}};inta[2][3]={1,2,3,4,5};......
  • 洛谷题单指南-二叉堆与树状数组-P2085 最小函数值
    原题链接:https://www.luogu.com.cn/problem/P2085题意解读:有n个函数,函数中x取值>=1,计算所有函数能得到的值中最小的m个。解题思路:函数中x取值是>=1的整数,因此每个函数的值是f(1),f(2),f(3)....,是一个递增序列,题目本质上是要从n个递增序列中找到前m个最小的数。首先,对所有函数......
  • ag——ack 的升级版,C语言编写,更快更人性化
    转自于:https://github.com/jaywcjlove/linux-command,后不赘述agack的升级版,C语言编写,更快更人性化补充说明摘自https://github.com/ggreer/the_silver_searcher项目的Readme.md它比ack快一个数量级。它忽略了你的.gitignore和.hgignore中的文件模式。如果你的......
  • C语言核心知识(下)
     一、变量1、变量定义2、变量的定义格式3、变量的使用  4、应用5、总结A、变量如何定义?    数据类型变量名;  eg:inta; B、变量如何使用?   @·1、赋值/修改值       a=21;   @·2、获取值        ......
  • C语言的概述及开发工具
    目录一、C语言的概述二、C语言的开发工具总结一、C语言的概述C语言是一种较早的程序设计语言,诞生于1972年的贝尔实验室。1972年,DennisRitchie设计了C语言,它继承了B语言的许多思想,并加入了数据类型的概念及其他特性。尽管C语言是与UNIX操作系统一起被开发出来的,但......
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.17——字符函数&&字符串函数
    文章目录1.字符函数1.1字符分类函数1.1.1islower1.2字符转换函数1.2.1tolower2.字符串函数2.1strlen2.2strcpy和strncpy2.3strcat和strncat2.4strcmp和strncmp2.5strstr2.6strtok2.7strerror希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的......