【C语言基础学习笔记】四、数组详解(超详细!超硬核!)

本文详细介绍了C语言中的数组,包括一维数组的创建、初始化、使用和内存存储,二维数组的创建、初始化、使用及其内存布局,以及数组作为函数参数的用法。此外,还讨论了数组名的含义和数组地址与首元素地址的区别,并对三维及多维数组进行了概述。
摘要由CSDN通过智能技术生成

本章前言
在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
简化记忆方式:数组是一组相同类型元素的集合。



一维数组的创建和初始化

一维数组的创建

数组的创建方式 :

type_t arr_name[const_n];
//type_t是指数组的元素类型
//arr_name是数组名
//const_n是一个常量表达式,用来指定数组的大小

注∶数组创建,[ ]中要给一个常量才可以,不能使用变量。
例如:

//代码1 
int arr1[10];
char arr2[9];
double arr3[8];
//以上数组可正常创建

//代码2
int count = 10;
int arr4[count];
//该数组不能正常创建,[]中应该为常量,不能为变量

提示:有些编译器中[ ]中出现了变量不报错,也正常编译执行,那是因为该编译器支持C99语法标准。在C99语法标准中有变长数组的概念-- -
数组[]中可以是变量。
一般我们常用的编译器,如Viual Studio(VS)系列编译器是不支持C99语法标准的。


一维数组的初始化

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

int arr1[10] = {
    1,2,3 };//不完全初始化
int arr2[] = {
    1,2,3,4 };
int arr3[5] = {
    12345 }; //完全初始化
char arr4[3] = i'a ', 98'c'};
char arr5[] = {
    'a ', ' b', 'c ' };
char arr6[] = "abcdef";

在这里插入图片描述
这里我们要注意区分

char ch2[] = {
    'b','i','t' };
char ch4[] = "bit";

在这里插入图片描述

在使用printf打印字符以及strlen求字符串长度时候,遇到’\0’才停止,没遇到’\0’之前不停止。


一维数组的使用

对于数组的使用我们之前介绍了一个操作符︰[ ]下标引用操作符。它其实就数组访问的操作符。我们来看代码︰

#include <stdio.h>
int main()
{
   
	int arr[10] = {
    0 };//数组的不完全初始化//计算数组的元素个数
	int sz = sizeof(arr) / sizeof(arr[0]);
	int i = 0;
	//对数组内容赋值,数组是使用下标来访问的,下标从0开始。
	for (i = 0; i < 10; i++
  • 41
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大家好我叫张同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值