首页 > 其他分享 >学C笔记归纳 第十四篇——一维数组

学C笔记归纳 第十四篇——一维数组

时间:2023-12-15 10:24:08浏览次数:32  
标签:初始化 arr 一维 int 元素 笔记 char 数组 第十四

1.什么是数组?

        数组是一组相同类型元素的集合。

2.数组的创建方式

        type_t arr_name [const_n]

        type_t                数组的元素类型

        arr_name          数组名

        const_n            常量表达式,用来指定数组的大小

例如:int arr[2];

           char[2+3] ; //这样也行

3.下面代码只能在支持C99标准的编译器上编译:

int n = 19;
scanf("%d",&n);
int arr[n]; //变长数组,不可初始化

 

在c99之前,数组的大小n必须是常量或者常量表达式;

在c99之后,数组的大小可以是变量,为了支持变长数组,变长数组不可初始化 。(gcc的编译器就支持变长数组

4.数组的初始化

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

int arr1[5] = {1,2,3}; 
 //不完全初始化,剩余元素默认初始化为0 
 // 1 2 3 0 0 

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

int arr12[] = {1,2,3}
 //1 2 3 




char arr4[5] = {'a','b','c'};
 //a b c 0 0
 //两个0都是默认的

char arr5[5] = "abc";
 //a b c 0 0
 //第一个0,是自带的“\0”
 //这种初始化arr5比arr4多放一个“\0”,调试监视界面显示一样,但我们要知道



char arr7[] = "abc";
 //a b c 0

char arr8[] = {'a','b','c'};
 //a b c

 

 

5.下标引用操作符 []

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

数组arr初始化实际上是在内存的栈区中申请了一块连续的空间,存放这六个数值,这个空间名叫arr,抽象点,arr这个房子有六个相连的房间,编号从0到5。

那么数组名arr加上操作符编号—arr[n]; 就可以精准访问数组内的元素。

 

#include <stdio.h>
int main()
{
 int arr[] = {1,2,3,4,5,6};

 //计算数组的元素个数
 int sz = sizeof(arr)/sizeof(arr[0]);

 int i = 0;
 //输出数组的内容
 for(i = 0; i < sz; i++)
 { 
     printf("%d ", arr[i]);
 }
 return 0;
}

 

 

 

 

#include <stdio.h>
int main()
{
    int arr[] = { 1,2,3,4,5,6 };

    //计算数组的元素个数
    int sz = sizeof(arr) / sizeof(arr[0]);

    int i = 0;

    //打印数组每个元素的地址
    for (i = 0; i < sz; i++)
    {
        printf("&arr[%d] = %p\n", i, &arr[i]);
    }

    ////输出数组的内容
    //for (i = 0; i < sz; i++)
    //{
    //    printf("%d ", arr[i]);
    //}
    return 0;
}

 

 

 

2c ,30,34,38,3c,40   

        'c'是十六进制12,那么这些地址之间差4,就是每个整型元素都占4个字节(int)

 随着数组下标的增长,元素的地址,也在有规律的递增。 由此可以得出结论:数组在内存中是连续存放的

 

标签:初始化,arr,一维,int,元素,笔记,char,数组,第十四
From: https://www.cnblogs.com/xiaowanglong/p/17901914.html

相关文章

  • [Python学习笔记]制作自动将xls文件转化为xlsx文件的程序
    背景:供应商程序导出的文件是xls格式的,我需要使用PowerQuery将这些文件合并整理,但是目前没有找到可以打卡xls文件的代码,所以将xls文件转化为xlsx文件后再使用PowerQuery进行处理。思路:1.网上找到了将xls文件转化为xlsx文件的代码,将这个代码定义为一个函数去执行转换的功能......
  • Leader笔记:程序员小团队透明和信任管理
    今天想跟大家分享一下小团队的透明管理,这也是一个管理技巧,相信很多Leader身份的同学都了解到主管有很大的一个优势,就是在组织内拥有了信息不对称能力,Leader能够听到和了解到完全不同层面上的内容和消息,所以有很多Leader就采用这种信息不对称的方式来管理同学,这种短期看起来确实会......
  • 算法学习笔记二一冒泡排序
    目录什么是冒泡排序算法原理代码示例什么是冒泡排序​对给定数组进行遍历,每次比较相邻两个元素大小,若大的数值在前面则交换两数位置(升序),每完成一趟遍历数组中最大的元素都会上升到数组的末尾,这也是冒泡一词的由来。算法原理(升序)列表每相邻的数,如果前面比后面大,则交换这两个数......
  • 函数实现一维数组基本操作
    论如何用一个代码实现一堆数字的排序,删除,插入,查找。这当然少不了我们在数组上的操作,将这些看成一个个小功能,接下来我们为了使结构直观,这里我用函数来实现这些功能首先是声明//功能voidFunction();//排序voidSort(inti,intnum);//查找voidFind(intz);//插入voidIn......
  • openGauss学习笔记-159 openGauss 数据库运维-备份与恢复-导出数据-使用gs_dump和gs_d
    openGauss学习笔记-159openGauss数据库运维-备份与恢复-导出数据-使用gs_dump和gs_dumpall命令导出数据-导出所有数据库-导出所有数据库159.1导出所有数据库openGauss支持使用gs_dumpall工具导出所有数据库的全量信息,包含openGauss中每个数据库信息和公共的全局对象信息。可根......
  • 读书笔记12《构建之法 现代软件工程(第二版)》读后感
    今天将《大话软件工程-需求分析与软件设计》这本书算是总体阅读下来了,说一说总的感受。《大话软件工程-需求分析与软件设计》是一本为软件工程师和客户们提供一套支持交流、传递,具有很强实操性的理论、方法、工具和标准的书籍。这本书让我对软件工程有了更深入的理解,并且让我......
  • Zotero使用笔记
    1、下载导入论文第一种:打开谷歌学术,输入关键词,然后我们能看到相关的论文,最后点击黄色的文件袋,选择想要导入的论文。——注意:Zotero也需要打开。 第二种:进入Zotero通过点击标识符,输入专属的ISBN或DOI,生成条目。 第三种:进入Zotero点击+按钮,手动添加第四种:将PDF拖拽到Zot......
  • LCT 学习笔记
    引子在古老且美妙的数据结构王国,一次,一个巨大的怪兽出现在了这个国家,这个怪兽是一棵树,打败这个怪兽只需要能快速求出这个怪兽任意一条路径上的和就可以了,可是他灵活多变,自己的手脚可以调换位置,或拿下来(边可以断掉或连上)身上的每一寸肌肤都可改变其硬度(点可以修改值)树链剖分找到......
  • java基础语法之一维数组的应用案例
    一:概述在前面已经介绍了一维数组的相关语法知识,下面来讲一下具体案例的实现。二:具体说明<1>数组的遍历数组遍历指的是:获取数组中的每一个元素,我们可以把获取到的元素输出在控制台具体代码和运行截图如下:publicstaticvoidmain(String[]args){//定义数组并初始化......
  • 秦疆的Java课程笔记:69 面向对象 Super详解
    super调用父类属性//首先写一个父类publicclassPerson{protectedStringname="1";}//然后写一个子类publicclassStudentextendsPerson{privateStringname="2";publicvoidtest(Stringname){System.out.println(name)......