C语言如何实现一维数组的创建和初始化
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,小编给大家分享一下C语言如何实现一维数组的创建和初始化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一维数组的创建和初始化
千家信息网最后更新 2024年11月30日C语言如何实现一维数组的创建和初始化
小编给大家分享一下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
计算的是字符串的长度,并且只针对字符串
关注的是字符串中是否有\0,计算的是\0之前的字符个数
sizeof是一个操作符(运算符)
sizeof使用来计算变量所占内存空间大小的,任何类型都可以使用哦
只关注空间大小,不在乎内存中是否有\0
3一维数组的使用
数组是有下标的,第一个元素下标为0,依次增加
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]); }
每两个地址之间相差4
一个整型是四个字节
内存中一个字节给一个地址
结论
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); }
可以用首地址+i
跳转到第i个元素地址
因此可以用*(p+i)
来得到第i个元素
以上是"C语言如何实现一维数组的创建和初始化"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数组
元素
大小
一维
地址
下标
内存
字符
字符串
字节
长度
内容
变量
常量
空间
篇文章
类型
支持
语言
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国人保财险软件开发岗待遇
网络安全法视频免费下载
csgo控制台查看当前服务器
长沙大数据库安全性
上海综合软件开发销售厂
京东网上商城网络安全
网络安全监测预警系统
管家婆安装数据库打不开
广东网络安全专业
宙斯盾网络安全隔离卡如何卸载
redis 数据库python
网络安全数字教育考试
软件开发的破局之路
成都app软件开发哪家好
软件开发协助系统
孙浩云网络安全
网络技术部经理工作业绩
dns免费服务器
数据库运维服务的重点
服务器网站挂马
南湾租房软件开发
常用网络安全命令有哪些
软件开发网站定制
数据库设计一对一
铭创网络技术服务工作室
软件开发考研难度排名
网络安全风险评估主要内容
根据网络安全法规定个人信息
大话西游2免费版 服务器
sql数据库表的创建和使用