首页 > 其他分享 >数组

数组

时间:2022-11-28 23:31:10浏览次数:29  
标签:arr int includeint 数组 printf main

一维数组的创建和初始化


数组的创建

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

数组的创建方式:

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

#include<stdio.h>
int main()
{
//创建一个数组-存放整形-10个
int arr[10];
//存放五个字符
char arr2[5];
return 0;
}
//注:数组创建,[]中要给一个常量才可以,不能使用变量


数组的初始化

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

#include<stdio.h>
int main()
{
//int arr[10] = { 1,2,3 };//不完全初始化,剩下的元素默认初始值为0
//char arr1[3]={'a',98,'c'};
//char arr2[5] = { 'a','b','c' }; //arr1与arr2相同
//char arr3[5] = "ab"; //放了三个值 a b \0
char arr4[] = "abcdef";//放了7个元素
printf("%d\n", sizeof(arr4));//7
//sizeof 计算arr4所占空间的大小
//7个元素 -char 7*1=7

printf("%d\n", strlen(arr4));//6
//strlen 求字符串长度 -'\0'之前的字符个数
//遇到\0停止 计算长度\0不算在内
return 0;
}


strlen与sizeof

1.strlen和sizeof没有什么关联

2.strlen是求字符串长度的 -只能针对字符串求长度 -库函数 -使用得引用头文件

3.sizeof是计算变量,数组,类型的大小,单位是字节 -操作符

#include<stdio.h>
int main()
{
char arr1[] = "abc"; //a b c \0
char arr2[] = { 'a','b','c' }; //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));//随机值
return 0;
}


一维数组的使用

对于数组我们之前介绍了一个操作符:[] 下标引用操作符,它其实就是数组访问的操作符

#include<stdio.h>
int main()
{
char arr[] = "abcdef";

//打印d
//printf("%c\n", arr[3]);

//打印abcdef
int i = 0;
int len = strlen(arr);
for (i = 0; i < len; i++) //strlen默认返回一个无符号整形,int是有符号整型
{
printf("%c ", arr[i]);
}
return 0;
}
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}

总结:1.数组是使用下标来使用的,下标是从0开始的

          2.数组的大小可以通过计算得到

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

#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", i, &arr[i]);
}
return 0;
}

数组在内存中是连续存放的

数组_初始化

数组_#include_02



二维数组的创建和初始化


二维数组的创建

#include<stdio.h>
int main()
{
int arr[3][4];
char ch[5][6];
return 0;
}


二维数组的初始化

#include<stdio.h>
int main()
{
int arr[3][4] = { {1,2,3},{4,5} };
int arr2[][4] = { {1,2,3,4},{5,6,7,8} }; //行可以省略,列不可以省略
return 0;
}


二维数组的使用

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


二维数组在内存中的存储

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

二维数组在内存中也是连续存储的

数组_数组_03

数组_#include_04

标签:arr,int,includeint,数组,printf,main
From: https://blog.51cto.com/u_15848198/5893818

相关文章

  • JS案例:数组相关
    1、数组倒置<script>vararr=[1,2,3,4,5,6,7,8,9]varnewArr=[]for(i=arr.length-1;i>=0;i--){newArr[n......
  • JS案例:把一个新的数字,插入到一个数组中
    把一个新的数字,插入到一个数组中分情况考虑1.如果arr是一个空数组2.如果插入的数字比数组的每个元素都大3.如果插入的数字比数组的每个元素都小4.如果数组是倒序排列......
  • go源码学习(一):数据结构-数组
    数组是相同类型元素的集合,在内存中对应一块连续的内存空间。数组类型是通过存储的元素类型以及能够存储的大小两个维度来决定的,一旦声明之后大小就不可更改。初始化go语......
  • 数组中的最长山脉 救生艇 水果成篮
    845.数组中的最长山脉intn=arr.length;if(n<3)return0;intans=0;for(inti=1;i<n-1;i++){if(arr[i]>arr[i-1]&&arr[i]>arr[i+1]){找......
  • 处理数组对象,ES6合并对象数组
    将所有对象,Name相同的值,count合并成新的数组   将格式改为:先处理时间 lettime=_data.map(val=>{returnval.start})console.log(time)处理listl......
  • Java中数组、集合初始化及遍历方式
    一、数组1.一维数组一维数组两种初始化方式静态初始化int[]array={1,2,3};int[]array=newint[]{1,2,3};动态初始化int[]array=newint[3......
  • 北理工乐学 43. 【日期】黑色星期五(数组)
    43.【日期】黑色星期五(数组)在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫"黑色星期五”。......
  • 力扣209(java&python)-长度最小的子数组(中等)
    题目:给定一个含有 n 个正整数的数组和一个正整数target。找出该数组中满足其和≥target的长度最小的连续子数组 [numsl,numsl+1,...,numsr-1,numsr],并返回......
  • shell 使用jq解析json字符串数组
    echojson.txt|jq'.' 输出整个json字符串echojson.txt|jq'.[0]' 取出数组中第一个objectechojson.txt|jq'.[0].name' 取出数组第一个object中键为name的值......
  • 12个有用的JavaScript数组技巧
    数组是Javascript最常见的概念之一,它为我们提供了处理数据的许多可能性,熟悉数组的一些常用操作是很有必要的。1、数组去重1、from()叠加newSet()方法字符串或数值型数......