首页 > 其他分享 >C语言学习笔记(八)————数组

C语言学习笔记(八)————数组

时间:2024-06-09 09:01:07浏览次数:18  
标签:arr 数组 int 元素 笔记 C语言 二维 一维

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

一个学习C语言的小白,有问题评论或私信~
本文主要记录C语言的数组~


提示:以下是本篇文章正文内容,下面案例可供参考

1 一维数组

构造数据类型之一
数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素
数组中各元素的数据类型要求相同,用数组名和下标确定,数组可以是一维的,也可
以是多维的。

1.1 一维数组的定义

  1. 所谓一维数组是指只有一个下标的数组,它在计算机的内存中是连续存储的。

  2. C语言中,一维数组的说明一般形式如下:
    <存储类型> <数据类型 > <数组名>[<表达式>];
    例如:int a[6]:
    在这里插入图片描述

     数组名表示内存首地址,是地址常量。sizeof(数组名)是数组占用的总内存空间
     编译时分配连续的内存,内存字节数=数组维数*sizeof(元素数据类型)
    

注意事项:

C语言对数组不作越界检查,使用时候要注意

关于用变量定义数组维数

int  i = 15;
int  a[i];

1.2 一维数组的引用

数组必须先定义,再使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式: 数组名[下标]
例如:
其中,下标可以是常量或者 整形表达式

int a[10];
 printf("%d",a); //错误写法
for(i=0;i<10;i++)
 printf("%d",a[i]); //正确写法

1.3 一维数组的初始化

  1. 初始化方式:在定义数组的时候,为数组元素赋初值
    int a[5] = {1,2,3,4,5};
  2. 说明
    1. 数组不初始化,其元素值为随机数
    2. 对static数组元素不赋初值,系统会自动赋以0
    3. 只给部分数组元素赋初值

在这里插入图片描述

题目:冒泡排序

它重复的走访过要排序的数列,一次比较两个元素,如果顺序错误就交换。走访数列的工作是重复的进行直到没有再需要交换,也就是说数列已经排序完成。

代码:

#include<stdio.h>

int main()
{
	int arr[] = {7,8,9,11,89,6,4,3},t;
    int n = sizeof(arr)/sizeof(int);
    for(int i = 0 ; i < n-1 ; i++)//拿一个数和另一个数比较最后一个数不用和后一个数比较n-1否则索引会越界
    {
        for(int j = 0 ; j < n-1-i ; j++)//每循环一遍就确定一个最大值就不用和当前最大值再比了
        {
            if(arr[j] > arr[j+1])
            {
                t = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = t;
            }
        }
    }
    for(int i = 0 ; i<n ; i++)
    {
        printf("%d ",arr[i]);
    }
	return 0;
}

2 二维数组

2.1 二维数组的定义

定义方式:(声明时列数不能省略,行数可以)

数据类型  数组名[常量表达式][常量表达式];
例如:
int a[3][4];
float  b[2][5];
int c [2][3][4];

元素个数 = 行数*列数

2.2 二维数组的存放顺序

原因:内存是一维的
二维数组:按行序优先
在这里插入图片描述
二维数组a是由 三个元素组成 a[0]、a[1]、a[2]
每个元素a[i] 由包含2个元素的一维数组组成

3 多维数组

具有两个或者两个以上下标的数组称为多维数组。

int  c[2][3][4]
 c[0][0][0]、c[0][0][1]、c[0][0][2]、c[0][0][3]
 c[0][1][0]、c[0][1][1]、c[0][1][2]、c[0][1][3]
 c[0][2][0]、c[0][2][1]、c[0][2][2]、c[0][2][3]
 c[1][0][0]、c[1][0][1]、c[1][0][2]、c[1][0][3]
 c[1][1][0]、c[1][1][1]、c[1][1][2]、c[1][1][3]

总结

1.所谓一维数组是指只有一个下标的数组,它在计算机的内存中是连续存储的。
2.一维数组初始化了下标可以省略,二维数组的行数可以省略,列数不可以省略。
3.二维数组的内存是一一维的,也是连续的。
4.数组如果没有初始化里面的值是随机的,如果初始化了一部分,后面的数都为0。

标签:arr,数组,int,元素,笔记,C语言,二维,一维
From: https://blog.csdn.net/qq_63556165/article/details/139550459

相关文章

  • C语言学习记录(七)————控制语句
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言控制语句是什么?一、分支语句(选择结构)1if-else语句2switch语句二、循环语句1.goto2while3do-while4for三、辅助控制语句1break2continue3return总结前言一位学习C语言的小白,有......
  • C语言学习记录(六)————输入输出
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、输入输出1.数据输出2.格式输出函数3.字符输入函数4格式输入函数5输入函数垃圾清理方法1:用getchar清除方法2:用格式串中空格或“%*c”来吃掉6字符串输入输出函数6.1字符串输入函数get......
  • 代码随想录算法训练营 day31 | 455.分发饼干 376.摆动序列 53.最大子数组和
    376.摆动序列说实话,没明白为啥算是贪心。最开始的思路是去重,然后统计正负变化次数。classSolution{public:intwiggleMaxLength(vector<int>&nums){if(nums.size()==1)return1;intans=0,last=-2,now;for(inti=1;i<nums.size();......
  • 计算机组成原理复习笔记
    前言就是按照考试的题型写的总结非常应试版题型一、进制转换只考十进制二进制十六进制之间的相互转换一个个看(1)十进制转其他转二进制:除以2从小到大取余数(0或1)转十六进制:除以16从小到大取余数(0到f)(2)二进制十六进制转十进制每位数字乘以相应的幂数再相......
  • 计算机系统基础笔记(12)——控制
    前言在持续输出ing一、条件码1.处理器状态(x86-64,部分的)当前程序的执行信息◼临时数据◼运行时栈的位置(栈顶)◼当前代码控制点的位置(即将要执行的指令地址)◼最近一次指令执行的状态2.条件码(隐式设置)简单的位寄存器条件码(隐式设置)CF进位标志(无符号数)SF符......
  • Centos7系统禁用Nouveau内核驱动程序【笔记】
    在CentOS系统中,Nouveau是开源的NVIDIA显卡驱动程序,但它与NVIDIA的官方驱动程序NVIDIAProprietaryDriver存在兼容性问题。如果你想要禁用Nouveau并使用NVIDIA官方驱动,可以按照以下步骤操作:1、创建一个黑名单文件以禁用Nouveau驱动。echo'blacklistnouveau'|sudote......
  • C语言二叉平衡搜索树
    AVL(二叉平衡搜索树)的概念和思路任意一个节点左子树高度-右子树高度<=1要想让BST保持平衡,必须在每一次插入、删除之后,检查是否其左右子树满足平衡的定义如果不满足,就做“旋转”操作,使其恢复平衡加入以上平衡策略算法后的BST,称为AVL,AVL是一种绝对平衡的二叉树#include......
  • C语言中的指针(1)
    目录指针是什么?指针变量&和*操作符指针变量的类型指针变量的大小指针变量类型的意义void*指针const修饰指针const修饰变量const修饰指针变量指针运算•指针+-整数•指针-指针​编辑​编辑​编辑•指针的关系运算野指针概念成因指针未初始化​编......
  • 做题笔记
    杂题DPAbandoningRoads看到\(n\leq70\),想一下朴素状压设\(f_{S,u}\),\(S\)表示处理完的连通块状态,\(u\)表示当前的节点因为只有两种边权,所以可以双队列求最短路,所以我们有了一个天然的\(O(2^nm)\)的做法无法通过捏\(m\)肯定没办法省略了那我们考虑减少\(2......
  • Living-Dream 系列笔记 第59期
    T1这是一道manacher模板,但是我们使用二分+hash\(O(n\logn)\)的做法。显然地,若长为\(len\)的回文串存在,则长为\(len-2,len-4,...\)的回文串也一定存在(在两端各删去若干相同字符即可)。至此,我们发现回文串分两类:奇回文串、偶回文串,在每一类当中分别具有单调性。于是......