广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言如何实现一维数组的创建和初始化
  • 866
分享到

C语言如何实现一维数组的创建和初始化

2024-04-02 19:04:59 866人浏览 八月长安
摘要

小编给大家分享一下C语言如何实现一维数组的创建和初始化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一维数组的创建和初始化1数组

小编给大家分享一下C语言如何实现一维数组的创建和初始化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一维数组的创建和初始化

1数组的创建

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

数组的创建方式:

数组的元素类型 数组名 [常量表达式];

eg. int arr[5]; char ch[100];

VS编译器中的易错点:【】内应为常量表达式

int n = 5;

int arr[n];(×)

int arr[5];(√)

(其实C99标准之前是不支持使用变量的,只能是常量!
C99中增加了变长数组的概念,允许数组大小是变量,而且要求编译器支持C99标准。
VS对C99的支持就不够好)

2数组的初始化

创建的同时给一些初始值叫初始化

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

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

int arr[] = { 1, 2, 3 };//未确定大小的数组根据初始化内容分配空间

	char arr1[] = { 'a', 'b', 'c' };
	char arr2[] = "abc";
	//sizeof求数组大小
	printf("%d\n", sizeof(arr1));//arr1有三个元素,数组大小是3个字节
	printf("%d\n", sizeof(arr2));//arr2有四个元素,数组大小是4个字节
	//strlen求字符串长度,遇到 '\0' 才停下
	printf("%d\n", strlen(arr1));//数组末尾没有‘\0',我们没法知道‘\0'会出现在什么地方,因此arr1的长度是随机值
	printf("%d\n", strlen(arr2));//数组末尾有‘\0',在其之前有三个元素,arr2的长度为3

strlen是一个库函数,使用前要加 #include<string.h>

计算的是字符串的长度,并且只针对字符串

关注的是字符串中是否有\0,计算的是\0之前的字符个数

sizeof是一个操作符(运算符)

sizeof使用来计算变量所占内存空间大小的,任何类型都可以使用哦

只关注空间大小,不在乎内存中是否有\0

3一维数组的使用

数组是有下标的,第一个元素下标为0,依次增加

C语言如何实现一维数组的创建和初始化

	int arr[5] = { 1, 2, 3, 4, 5 };
	printf("%d", arr[2]);//[]是下表访问操作符,这里是打印下标为2的数,打印出了3
	//打印数组所有元素,即打印下标为0,1,2,3,4的元素
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);//40/4求出元素个数,数组大小
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}

4 一维数组在内存中的存储

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

C语言如何实现一维数组的创建和初始化

每两个地址之间相差4

一个整型是四个字节

内存中一个字节给一个地址

C语言如何实现一维数组的创建和初始化

结论

1.一维数组在内存中是连续存放的

2.数组随着下标的增长,地址是由低到高变化的

	int arr[5] = { 1, 2, 3, 4, 5 };
	int i = 0;
	int *p = &arr[0];
	for (i = 0; i < 5; i++)
	{
		printf("%p----- %p \n", &arr[i], p + i);
	}

C语言如何实现一维数组的创建和初始化

可以用首地址+i跳转到第i个元素地址

因此可以用*(p+i)来得到第i个元素

以上是“C语言如何实现一维数组的创建和初始化”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网其他教程频道!

--结束END--

本文标题: C语言如何实现一维数组的创建和初始化

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

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

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

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

下载Word文档
猜你喜欢
  • C语言如何实现一维数组的创建和初始化
    小编给大家分享一下C语言如何实现一维数组的创建和初始化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一维数组的创建和初始化1数组...
    99+
    2022-10-19
  • C语言中一、二维数组如何创建和初始化
    这篇文章将为大家详细讲解有关C语言中一、二维数组如何创建和初始化 ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。(壹)  一维数组的创建和初始化 1.1  数组的创...
    99+
    2023-06-29
  • C语言如何实现二维数组的创建和初始化
    这篇文章给大家分享的是有关C语言如何实现二维数组的创建和初始化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。二维数组的创建和初始化1二维数组的创建int arr[3][...
    99+
    2022-10-19
  • c语言数组如何初始化
    C语言数组可以通过以下几种方式进行初始化:1. 静态初始化:在定义数组时,直接给出初始值,并用大括号括起来。```cint arr[...
    99+
    2023-08-25
    c语言
  • PHP中一维数组怎么创建和初始化
    这篇文章主要介绍PHP中一维数组怎么创建和初始化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是PHP数组?首先在文章的开始我们先来简单了解一下PHP数组:数组(Array)是一种线性表数据结构,简单来说就是一组...
    99+
    2023-06-20
  • Python如何创建二维数组和初始化
    一、Python用什么表达二维数组         严格意义上说,Python中并没有数组的概念,Python中表达一组数据有多种形式,例如list,tuple,set等数据结构都可以表达一组数,并且这组数也没有C和C++中数组的的同质限制...
    99+
    2023-09-21
    开发语言 python
  • c语言二维数组初始化的方法是什么
    在C语言中,有多种方式可以初始化二维数组。1. 使用循环进行逐个赋值:```cint arr[3][3];int i, j;for(...
    99+
    2023-08-31
    c语言
  • c语言多维数组初始化和赋值的方法是什么
    在C语言中,多维数组的初始化和赋值可以使用以下方法: 静态初始化:在定义数组时,直接给出各个元素的初始值。 int arr[3]...
    99+
    2023-10-23
    c语言
  • Python创建二维数组与初始化的实践举例
    目录一、Python用什么表达二维数组二、如何初始化一个二维数组2.1 利用list自身进行构造2.2 利用传统的list的append方法,通过迭代构造2.3利用numpy包构建二...
    99+
    2022-12-10
    python创建二维数组并赋值 python如何定义二维数组 python二维数组创建
  • c语言二维字符串数组初始化的方法是什么
    C语言中,可以使用以下两种方法初始化一个二维字符串数组:1. 使用字符串字面量初始化:可以使用花括号将字符串字面量括起来,并用逗号分...
    99+
    2023-10-20
    C语言
  • Java如何自定义类数组的创建和初始化
    目录自定义类数组的创建和初始化自定义类封装数组,添加类方法实现数据自定义类数组的创建和初始化 刚刚在慕课学习Java的集合类List过程中,向集合中添加元素时,遇到一个问题: 定义了...
    99+
    2022-11-12
  • Java数组的静态初始化如何实现
    这篇文章主要介绍“Java数组的静态初始化如何实现”,在日常操作中,相信很多人在Java数组的静态初始化如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java数组的静态初始化如何实现”的疑惑有所帮助!...
    99+
    2023-06-30
  • Python 如何用一行代码实现for循环初始化数组
    我就废话不多说了,大家还是直接看代码吧~ # 用一行代码实现for循环初始化数组 o = 10 b = [ o + u for u in range( 10 ) ] print...
    99+
    2022-11-11
  • C语言如何实现删除某一个数组值
    这篇文章主要介绍C语言如何实现删除某一个数组值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、前言在家里闲着还是闲着,这几天见证了Python各种数据结构的强大。Python中的数据类型如:列表、元组、字典等都具有...
    99+
    2023-06-25
  • Java和C语言如何使用静态语言实现动态数组
    这篇文章将为大家详细讲解有关Java和C语言如何使用静态语言实现动态数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JAVA版JAVA自带了一个集合类ArrayList,可以实现动态数组的功能,相比原生...
    99+
    2023-05-31
    java c语言
  • C语言详尽图解函数栈帧的创建和销毁实现
    目录常见寄存器基本的汇编语言知识具体实现关于栈帧创建与销毁的问答题注:本文章所使用的编译器是VS2010,由于不同编译器的函数栈帧与销毁略有差异,所以具体细节请读者自行实践! 常见寄...
    99+
    2022-11-13
  • 如何进行C语言函数栈帧的创建和销毁分析
    如何进行C语言函数栈帧的创建和销毁分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。以下是我们平时接触过,但不了解的问题:1.为什么局部变量在未赋值前是随机的。2.局部变量...
    99+
    2023-06-22
  • Java中的二维码和数组:如何实现优化加载?
    随着移动互联网的普及,二维码在我们的日常生活中扮演着越来越重要的角色。在Java中,我们可以使用一些库来生成和解码二维码,但是如果我们需要批量生成大量的二维码,或者需要在应用程序中频繁地加载和使用大量的数组数据,如何优化加载呢?本文将介绍...
    99+
    2023-08-09
    load 数组 二维码
  • 如何用C语言实现将格式化数据和字符串相互转换
    这篇文章主要讲解了“如何用C语言实现将格式化数据和字符串相互转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用C语言实现将格式化数据和字符串相互转换”吧!sprintf和sscanf用...
    99+
    2023-07-05
  • C语言如何实现无符号数和有符号数间的运算
    本篇内容主要讲解“C语言如何实现无符号数和有符号数间的运算”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言如何实现无符号数和有符号数间的运算”吧!unsigned int和int进行运算直接...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作