详解C语言初阶之数组

 更新时间:2021年11月12日 11:04:16   作者:鲸落之·海  
这篇文章主要介绍了C语言中的数组基础,介绍了其相关概念,具有一定参考价值。需要的朋友可以了解下,希望能够给你带来帮助

1.数组

1.1数组的概念

所谓数组(array),就是具有相同数据类型的集合,存放的数据类型即数组本身的类型。

可以发现存储的都是int型 

补充 :调试小技巧

调试窗口 (按F5进行调试,打开菜单栏中的调试—窗口—监视—随便打开一个监视窗口,输入arr,将程序运行过arr的初始化即可观察到arr内部进行的初始化)

1.2数组的定义 

a:完全初始化

数组内部存储了4个int类型的数据,分别是1,2,3,4

b:不完全初始化

 要求开辟四个空间存储数据,但只对第一个进行了初始化,默认后面三个均为0

c:给定元素个数

给定元素个数后,可以是完全初始化,也可以是部分初始化。

d:不给定元素个数

自动给四个元素分配空间,实际上中括号内还是4

注意:

a:不给定元素数据一律视为完全初始化

b:数组内部元素个数至少为1

c:[]内部必须是整型常量(c90 标准)——c99标准支持其他类型(linux),但我们主流仍旧采用c90标准,同样注意,我们一般所用的const定义的常量叫作常变量,本质并不算常量,因此该类型数据同样不能放在【】内

1.3数组的下标访问

数组可以通过指针和下标来进行访问,这里我们来说下标。

数组的第一个元素是【0】,即arr【0】代表第一个元素,arr【5】代表第六个元素

我们通常通过遍历(即循环)来对数组内容进行打印,如果存储的是字符串的话,那我们只需要%s(用来打印字符串)即可。

 

 注意:

a:通常情况下,数组名即arr是数组的首元素地址(因此对整型数组进行scanf循环输入时,直接scanf(“%d” ,arr)即可,而不用加&符号),但sizeof(arr)中的arr却代表整个数组的大小

b:sz=整个数组的大小/一个元素的大小==元素个数,arr【0】内的0改为1/2/3.....均可,但一般采用0(数组至少一个元素),防止越界访问(如一共只有四个元素,却访问了arr【5】)。

c:对字符数组(存储字符的数组)以%s进行输出时,出现错误,因为%s用来输出字符串类型,即遇到字符串磨人的‘\0'结束符后停止输出,但字符数组中没有默认的'\0'结束符,输出不能停止,超出数组空间后便出现错误,强制终止。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • C/C++中的内存管理小结

    C/C++中的内存管理小结

    这篇文章主要介绍了C/C++中的内存管理小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • C++11 学习笔记之std::function和bind绑定器

    C++11 学习笔记之std::function和bind绑定器

    这篇文章主要介绍了C++11 学习笔记之std::function和bind绑定器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • C语言驱动开发之内核文件的读写

    C语言驱动开发之内核文件的读写

    这篇文章主要为大家详细介绍了C语言驱动开发中内核文件的读写的系列函数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-06-06
  • C语言简明清晰讲解结构体

    C语言简明清晰讲解结构体

    C语言结构体(Struct)从本质上讲是一种自定义的数据类型,只不过这种数据类型比较复杂,是由 int、char、float 等基本类型组成的。你可以认为结构体是一种聚合类型
    2022-05-05
  • C++实现查壳程序代码实例

    C++实现查壳程序代码实例

    这篇文章主要介绍了C++实现查壳程序代码实例,有比较详细的注释,包含了对原理的说明,有一定的参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • 详解C++中的this指针与常对象

    详解C++中的this指针与常对象

    这篇文章主要介绍了详解C++中的this指针与常对象,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • VSCode下.json文件的编写之(1) linux/g++ (2).json中参数与预定义变量的意义解释

    VSCode下.json文件的编写之(1) linux/g++ (2).json中参数与预定义变量的意义解释

    这篇文章主要介绍了VSCode下.json文件的编写之(1) linux/g++ (2).json中参数与预定义变量的意义解释,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • C++中的Lambda表达式及表达式语句

    C++中的Lambda表达式及表达式语句

    这篇文章主要介绍了C++中的Lambda表达式及表达式语句,表达式这个概念在C++中属于比较细节的知识了,很多时候我们只用知道怎么用,对于编译器内部怎么处理我们并不关心;并且关于左值和右值这个概念,也是C++比较深的一个小知识点,需要的朋友可以参考一下
    2021-12-12
  • C++ 模拟实现list(迭代器)实现代码

    C++ 模拟实现list(迭代器)实现代码

    这篇文章主要介绍了C++ 模拟实现list(迭代器)实现代码的相关资料,需要的朋友可以参考下
    2017-05-05
  • 用C语言实现简单版9*9扫雷小游戏

    用C语言实现简单版9*9扫雷小游戏

    这篇文章主要介绍了用C语言实现简单版9*9扫雷小游戏,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论