C语言如何实现一维数组的创建和初始化
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下C语言如何实现一维数组的创建和初始化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一维数组的创建和初始化
千家信息网最后更新 2025年11月07日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的长度为3strlen是一个库函数,使用前要加 #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安全错误
数据库的锁怎样保障安全
数据库secle语句
电脑开机网络安全模式卡在
戴尔服务器配置ip
网站数据库被锁
华为断供俄罗斯高端服务器
半年网络安全工作总结
南京万有力网络技术
进口网络技术服务哪里好
tft如何选择服务器
网络安全和隐私数据保护
腾讯云服务器不注销会怎么样
恋与制作人一共有几个服务器
我的世界服务器如何当上管理员
软件开发的策划书模板
快科技互联网套餐
网络安全方向有哪些部门
嵌入式软件开发 管理
开展国家网络安全学
amd 服务器Rome GMI
软件开发行业 知乎
入数据库难不难
ios开发软件开发学习班
旅游网站数据库如何设计
哈稀网络技术有限公司什么行业
网络安全课堂观后感500
通讯录系统数据库设计
华夏网络安全联盟
数据库通过什么使用系统函数
redis是数据库还是通讯
汽车车载网络技术分析