C语言如何实现一维数组的创建和初始化
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,小编给大家分享一下C语言如何实现一维数组的创建和初始化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一维数组的创建和初始化
千家信息网最后更新 2025年02月19日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安全错误
数据库的锁怎样保障安全
什么是网络安全手册
涪陵区工商软件开发流程报价表
网络安全项目概述
手机港澳台服务器ip地址
德国互联网科技
浙江网络安全学院报名不了
网络安全社区有哪些
无线网络安全管理论文
数据库宠物系统数据表
软件开发可实施行报告
第二次网络安全委员会
丽水电脑软件开发工具
建设银行数据库共享吗
正规网络安全审计系统厂家
游戏服务器登录连接超时
地质灾害数据库
达梦数据库连接字段
网络技术咨询有哪些业务
校园网服务器故障解决
上海网络安全等级保护评测
绝地求生非安全服务器
软件开发安全认证
网络安全防护薄弱
博库数据库怎么检索中华期刊
计算机等级网络技术考试题
江苏前端软件开发定制
动态修改数据库表字段
java多线程少数据库
c语言用for储存数据库
小商品大数据库爆品