首页 > 其他分享 >一维数组与二维数组的创建、初始化和储存

一维数组与二维数组的创建、初始化和储存

时间:2023-11-25 16:31:38浏览次数:34  
标签:初始化 arr main 数组 int 一维 sizeof include

 一、一维数组

1.数组的创建 

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

数组的创建方式:

type_t   arr_name   [contest_n];

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

介绍一下strlen和sizeof的区别

  • strlen和sizeof没什么关联
  • strlen是求字符串长度的,只能根据字符串求长度,需要用引头文件
  • sizeof计算变量、数组、类型的大小,单位是字节(操作符)

请看代码:

#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[] = "abc";\\字符串后还有一个\0也占一个字节
	char arr2[] = {'a','b','c'};
	printf("%d\n", sizeof(arr1));//4
	printf("%d\n", sizeof(arr2));//3
	printf("%d\n", strlen(arr1));//3
	printf("%d\n", strlen(arr2));//随机值 arr2后没有\0
}

2.一维数组的访问和使用

对于数组的使用,我们可以使用下标引用操作符[],也就是数组访问的操作符

请看代码:

#include<stdio.h>
#include<string.h>
int main()
{
	char arr[] = "abcdef";
	int i = 0;
	for (i = 0; i <strlen(arr); i++)
	{
		printf("%c ", arr[i]);

	}
	return 0;

小结:

  • 数组是使用下标来访问的,下标是从0开始的
  • 数组的大小可以通过计算得到
int arr[10];
int sz=sizof(arr)/sizeof(arr[0]);

3.一维数组在内存中的储存

#include<stdio.h>
int main()
{
  int arr[]={1,2,3,4,5,6,7,8,9,10};
  int sz=sizeof(arr)/sizeof(arr[0]);
  int i=0;
  for(i=0;i<sz;i++)
  {
    printf("&arr[%d]=%p\n",&arr[i]);
  }   
}

注:%p是取地址符号

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

二、二维数组

1.数组的创建

int arr[3][4];
char arr[3][4];
double arr[2][4];

2.数组的初始化

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

3.数组的访问

请看代码:

#include<stdio.h>
int main()
{
  int arr[3][4]={{1,2,3,4},{1,5,6}}
  int i=0;
  int j=0;
  for(i=o;j<3;i++)
  {
    for(j=0;j<4;j++)
    {
      printf("%d ",arr[i][j]);
    }
  }
}

4.数组的存储

请看代码:

#include<stdio.h>
int main()
{
  int arr[3][4]={{1,2,3,4},{1,5,6}}
  int i=0;
  int j=0;
  for(i=o;j<3;i++)
  {
    for(j=0;j<4;j++)
    {
      printf("&arr[%d][%d]=%p\n",i,j,&arr[i][j]);
    }
  }
}





标签:初始化,arr,main,数组,int,一维,sizeof,include
From: https://blog.51cto.com/u_16351083/8561425

相关文章

  • 前端学习笔记202307学习笔记第六十七天-前端面试-对象解构赋值数组特殊处理1
      ......
  • 实现 利用SPI 接口 发送 显示屏 初始化代码
    1`timescale1ns/1ns2modulelcd_spi_top_tb();34regclk_x2_i;5regrst_i;6wirespi_cs;7wirespi_scl;8wirespi_mosi;9wirespi_miso;10wirespi_init_done;111213initialbegin14clk_x2_i=0;15rst_i=0;16......
  • Java零基础入门-数组
    Java零基础入门-数组前言Java是一门面向对象的编程语言,被广泛应用于各个领域。数组是Java编程中最基本也是最重要的数据结构之一,它可以用来存储一组数据,并且方便进行操作和处理。本文将为大家介绍Java数组的基本概念、语法和常见应用场景,帮助初学者快速入门。摘要本文将从以下......
  • JSON 格式的字符串转换回数组
    要将JSON格式的字符串转换回数组,你可以使用JavaScript的JSON.parse方法。这个方法可以将一个JSON字符串解析成JavaScript对象或数组。对于你的字符串,可以这样操作:假设你有一个JSON字符串str,其内容如下:'[{"goodsCode":"ABC1","qty":12.22},{"goodsCode":"ABC2","q......
  • 稀疏数组(精选)
    2023-11-24思路:        将数组转为稀疏数组存入文件/数据库,用的时候再取出来    稀疏数组3列:行,列,值   第一行记录原数组 行数,列数,以及存入的总值publicclassSparseArray_01{publicstaticvoidmain(String[]args){//稀疏数组......
  • JavaScript数组中的常用函数解析
    1.splice方法当使用splice()方法时,可以传递不同的参数来实现不同的操作。以下是splice()方法的参数说明:array.splice(start,deleteCount,item1,item2,...);start:必需,指定要进行操作的起始索引位置。如果该值为负数,则表示从数组末尾开始计算的偏移量。例如,-1表示倒数第......
  • 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整
    示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]用数组的indexOf()方法来查找值vartowSum=function(nums,target){for(leti=0,len=nums.length;i<len;i++){if(nums.indexOf(target-nums[i])>-1......
  • BigDecimal加减乘(cheng)除BigDecimal[]数组比较大小
     文章目录前言一、Bigdecimal是什么?二、使用步骤总结 前言提示:BigDecimal在使用的过程中尽量采用String类型的参数进行转换尽量避免不使用字符串的数字对小数点进行数据格式的转换,避免出现精准问题。加法:add()函数减法:subtract()函数乘法:multiply()函数除法:divide()函数绝对值......
  • 53. 最大子数组和(中)
    目录题目动态规划优化题目给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1]的和最大,为6。示例2:输入......
  • 数组(1)数组定义及典例
    <1>数组定义(1)引入数组概念:————用于记录很多同类型的数字格式:类型变量名称[元素数量];——举例:intgrades[100];元素数量必须是整数;数组功能及特点:功能:1.相当于存放数据的容器;特点:1.一旦创建不可改变大小;2.其中所有元素具有相同的数据类型;3.数组中的元......