iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言数组快速入门详细讲解
  • 438
分享到

C语言数组快速入门详细讲解

2024-04-02 19:04:59 438人浏览 独家记忆
摘要

目录1.一维数组a.一维数组的创建b.一维数组的初始化c.一维数组的使用d.一维数组在内存中的存储2.二维数组a.二维数组的创建b.二维数组的初始化c.二维数组的使用d.二维数组在内

1.一维数组

数组的定义: 数组是一组相同类型元素的集合

a.一维数组的创建

数组的创建格式为: 数组的类型 数组名[ 常量表达式] ;

关于数组创建易错点:

b.一维数组的初始化

类似于给整型变量初始化的过程:

int a=2; int b=5; int c=66;

关于数组初始化易错点:

字符串的结束标志是 \0

特别注意:数组长度和字符串长度不是一个东西

#include <stdio.h>
#include <string.h>
int main()
{
	int arr1[3] = { 1,2,3 };
	//数组有1、2、3这三个元素
	int arr2[4] = { 1,2,3 };
	//数组有1、2、3、0这四个元素
	int arr3[4] = { 0 };
	//数组有0、0、0、0这四个元素
	char ch4[5] = "dat";
	//数组有d、a、t、\0、0这五个元素
	char ch5[] = "dat";
	//数组有d、a、t、\0这四个元素
	char arr6[] = "abc";
	//数组有a、b、c、\0四个元素,该数组长度为3,字符串长度为3
	char arr7[] = {'a','b','c'};
	//数组有a、b、c三个元素,该数组长度为3,字符串长度为随机值
	printf("%d\n", strlen(arr6));//3
	printf("%d\n", strlen(arr7));//随机值
	printf("%s\n", arr6);//得abc
	printf("%s\n", arr7);//abc乱七八糟
	return 0;
}

c.一维数组的使用

访问数组中的某个元素用到[ ]下标引用操作符, 数组是使用下标来访问的,下标是从0开始

计算数组的大小如下代码:

#include <stdio.h>
int main()
{
    int arr[10] = {0};
    int sz = sizeof(arr) / sizeof(arr[0]);
    printf("则数组的大小为%d\n",sz);
    return 0;
}

d.一维数组在内存中的存储

一维数组在内存中连续存放

数组的存放地址由低到高变化,看代码:

2.二维数组

一维数组长这样:

int arr [ 10 ]= { 0 } ;

二维数组长这样:

int arr [ 3] [4 ]= { {1,2}, {3,4}} ;

a.二维数组的创建

int arr1 [ 3 ] [ 4 ] ; 三行四列

char arr2 [ 4] [ 4 ] ; 四行四列

float arr3 [ 3 ] [ 6] ; 三行六列

特别注意:二维数组中,行可以省略,如:

int arr [ ] [ 4 ] ;

b.二维数组的初始化

int arr1 [ 3 ] [ 4 ] = {1,2,3,4,5};

第一行: 1 2 3 4

第二行: 5 0 0 0

第三行: 0 0 0 0

char arr2 [ 4] [ 4 ] ={ {1,2} , {3,4} } ;

第一行: 1 2 0 0

第二行: 3 4 0 0

第三行: 0 0 0 0

第四行: 0 0 0 0

float arr3 [ 3 ] [ 6] = { {1,2} , {3,4} , {5,6,0,2} } ;

第一行: 1 2 0 0 0 0

第二行: 3 4 0 0 0 0

第三行: 5 6 0 2 0 0

特别注意:未完全初始化的部分都是0

c.二维数组的使用

和一维数组相同,二维数组的使用也是通过下标的方式实现, 行和列的顺序,以及下标的的顺序不能错哦

d.二维数组在内存中的存储

通过下图,我们发现:

二维数组在内存中也是连续存储的

数组的存放地址也是由低到高变化

3.数组越界

数组的下标是有限制的

规定:数组下标从0开始,最后一个元素下标为n-1

看以下代码:

i=3;则有0 1 2 3 四个下标就有四个元素,

j=4;则有0 1 2 3 4 五个下标就有五个元素

4.数组作为函数参数

这里用个冒泡函数:将元素排序,来举例

这个代码通过调试,才能得出效果

#include <stdio.h>
 
void bubble_sort(int arr[], int sz)
{
    int i = 0;
    for (i = 0; i < sz - 1; i++)
    {
        int j = 0;
        for (j = 0; j < sz - i - 1; j++)
        {
            if (arr[j] > arr[i])
            {
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
}
int main()
{
    int arr[] = { 1,3,6,8,2,9 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    bubble_sort(arr, sz);
    return 0;
}

5.数组名

数组名就是首元素的地址(俩个例外)

1.sizeof(数组名)计算的是数组的大小

2.&数组名,取出的是数组的地址

到此这篇关于C语言数组快速入门详细讲解的文章就介绍到这了,更多相关C语言数组内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言数组快速入门详细讲解

本文链接: https://www.lsjlt.com/news/148650.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言数组快速入门详细讲解
    目录1.一维数组a.一维数组的创建b.一维数组的初始化c.一维数组的使用d.一维数组在内存中的存储2.二维数组a.二维数组的创建b.二维数组的初始化c.二维数组的使用d.二维数组在内...
    99+
    2022-11-13
  • C语言数组超详细讲解上
    目录前言1、一维数组的创建和初始化1.1 一维数组的创建1.2 一维数组的初始化1.3 一维数组的使用1.4 一维数组在内存中的存储2、二维数组的创建和初始化2.1 二维数组的创建2...
    99+
    2022-11-13
  • C语言数组全面详细讲解
    目录1.基础知识2.数组的分类2.1按元素类型分类2.2按维数分类3.数组定义和初始化3.1 一维数组3.2 二维数组4.数组元素的引用方法5.字符数组的定义1.基础知识 C语言中使...
    99+
    2022-11-13
  • C语言超详细讲解轮转数组
    目录题目描述实例解题思路1. 先整体逆转2.逆转子数组[0, k - 1]3.逆转子数组[k, numsSize - 1]易错点代码题目描述 给你一个数组,将数组中的元素向右轮转 k...
    99+
    2022-11-13
  • JDBC最详讲解(快速入门)
    作者简介:大家好我是小唐同学(๑>؂小唐同学(๑>؂...
    99+
    2023-09-04
    java 数据库 mysql
  • C语言数组超详细讲解下篇扫雷
    目录前言1、扫雷是什么?2、程序框架2.1 主函数2.2 函数menu2.3 函数game2.3.1 函数init_board2.3.2 函数show_board2.3.3 函数se...
    99+
    2022-11-13
  • C语言详细讲解指针数组的用法
    目录1. 指针数组定义方法2. 指针的指针(二级指针)3. 字符串和指针4. 数组指针定义方法数组指针的用法1. 指针数组定义方法 格式: 类型说明符 *数组名[ 元素个数 ] in...
    99+
    2022-11-13
  • C语言详细讲解数组参数与指针参数
    目录一、C语言中的数组参数退化为指针的意义二、二维数组参数三、等价关系四、被忽视的知识点五、小结一、C语言中的数组参数退化为指针的意义 C 语言中只会以值拷贝的方式传递参数 当向函数...
    99+
    2022-11-13
  • C语言超详细讲解库函数
    目录1 返回整数的getchar函数2 更新顺序文件3 缓冲输出与内存分配4 库函数练习1 返回整数的getchar函数 代码: #include<stdio.h> ...
    99+
    2022-11-13
  • C语言详细讲解树状数组与线段树
    目录树状数组动态求连续区间和数星星线段树动态求连续区间和数列区间最大值树状数组 动态求连续区间和 给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,...
    99+
    2022-11-13
  • C语言数组超详细讲解中篇三子棋
    目录前言1、三子棋是什么?1.1 百度百科1.2 游戏编程准备工作2. 程序实现2.1 搭建程序框架2.2 模块化编程2.2.1 源文件test.c2.2.2 源文件play.c2....
    99+
    2022-11-13
  • C语言函数超详细讲解上篇
    目录前言1、函数是什么?2、C语言中函数的分类2.1 库函数2.1.1 如何学会使用库函数2.1.2 自定义函数3、函数的参数3.1 实际参数(实参)3.2 形式参数(形参)4、函数...
    99+
    2022-11-13
  • C语言函数超详细讲解下篇
    目录前言函数的声明和定义函数声明函数定义举例简单的求和函数把加法单独改写成函数添加函数声明带头文件和函数声明静态库(.lib)的生成静态库文件的使用方法函数递归什么是递归?递归的两个...
    99+
    2022-11-13
  • C语言详细讲解多维数组与多维指针
    目录一、指向指针的指针二、二维数组与二维指针三、数组名四、小结一、指向指针的指针 指针的本质是变量 指针会占用一定的内存空间 可以定义指针的指针来保存指针变量的地址值 为什么需要指向...
    99+
    2022-11-13
  • C语言详细讲解qsort函数的使用
    目录qsort1.int型2.float型3.struct型qsort 功能:Performs a quick sort.(快速排序)参数:void qsort( void *bas...
    99+
    2022-11-13
  • C语言结构体简单入门讲解
    结构体 定义:用于存储不同的数据类型,存储在同一块内存空间里面 关键字 struct 标签 结构体名称 成员 例如: struct student {...
    99+
    2022-11-12
  • C语言超详细讲解线性表
    目录1. 顺序表1.1 管理结点1.2 顺序表的插入1.3 顺序表的删除1.4 顺序表的扩容2. 链表2.1 定义2.2 头部插入2.3 尾部插入2.4 任意位置插入2.5 任意位置...
    99+
    2022-11-13
  • c语言压缩文件详细讲解
    目录c语言压缩文件一、单文件压缩二、多文件压缩三、多文件异步压缩四、压缩文件夹c语言压缩文件 话说当今压缩市场三足鼎立,能叫上名号的有zip、rar、7z。其中zip是压缩界的鼻祖,...
    99+
    2022-11-12
  • C语言 超详细讲解链接器
    目录1 什么是链接器2 声明与定义3 命名冲突3.1 命名冲突3.2 static修饰符4 形参、实参、返回值5 检查外部类型6 头文件1 什么是链接器 典型的链接器把由编译器或汇编...
    99+
    2022-11-13
  • C语言详细讲解const的用法
    目录一、int const a / const int a二、const int(*p)/int const(*p)三、int*const p四、const用于函数的地址传递参数一、...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作