当前位置: 首页 > news >正文

国内新闻最新消息淄博网站制作服务优化

国内新闻最新消息,淄博网站制作服务优化,办公网站建设,wordpress安装显示空白页目录 一维数组数组的创建初始化使用在内存中的存储 二维数组创建初始化使用在内存中的存储 数组越界 一维数组 数组的创建 数组是一组相同类型元素的集合。 int arr1[10]; char arr3[10]; float arr4[10]; double arr5[10];下面这个数组能否成功创建#xff1f; int count… 目录 一维数组数组的创建初始化使用在内存中的存储 二维数组创建初始化使用在内存中的存储 数组越界 一维数组 数组的创建 数组是一组相同类型元素的集合。 int arr1[10]; char arr3[10]; float arr4[10]; double arr5[10];下面这个数组能否成功创建 int count 10; int arr2[count];**注**在C99标准之前 [] 中要给一个常量才可以不能使用变量。在C99标准支持了变长数组的概念数组的大小可以使用变量指定但是数组不能初始化。不过在C90标准下仍然有一些不能实现所以具体能否实现还是要看编译环境。 初始化 int arr1[10] {1,2,3}; int arr2[] {1,2,3,4}; int arr3[5] {12345} char arr4[3] {a,98, c}; char arr5[] {a,b,c}; char arr6[] abcdef;上述都是正确的数组初始化数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。 char arr1[] abc; char arr2[3] {a,b,c};这两行代码都是给数组初始化为abc三个字符但是在内存中的分配是不一样的。 使用 我们之前介绍了一个操作符 [] 下标引用操作符。它其实就数组访问的操作符。 #include stdio.h int main() {int arr[10] { 0 };//数组的不完全初始化//计算数组的元素个数int sz sizeof(arr) / sizeof(arr[0]);//对数组内容赋值,数组是使用下标来访问的下标从0开始。所以int i 0;//做下标for (i 0; i 10; i){arr[i] i;}//输出数组的内容for (i 0; i 10; i){printf(%d , arr[i]);}return 0; }注意 数组是通过下标来访问的下标是从0开始。数组的大小可以通过计算得到。 int arr[10]; int sz sizeof(arr)/sizeof(arr[0]);在内存中的存储 #include stdio.h int main() { int arr[10] {0}; int i 0;int sz sizeof(arr)/sizeof(arr[0]);for(i0; isz; i) { printf(arr[%d] %p\n, i, arr[i]); } return 0; }我们通过打印地址来观察数组在内存中的存吃是怎么样的 十六进制是从0 ~ 9A ~ F相当于10~15观察输出的结果可以发现当下标增长1元素的地址增加4从低地址到高地址非常有规律地增加数组在内存中是连续存放的 二维数组 创建 int arr[3][4]; char arr[3][5]; double arr[2][4];初始化 int arr[3][4] {1,2,3,4}; int arr[3][4] {{1,2},{4,5}}; int arr[][4] {{2,3},{4,5}};注意 二维数组如果有初始化行可以省略列不能省略。 int arr[][4] {{2,3},{4,5}}; //正确写法 int arr[4][] {{2,3},{4,5}}; //错误写法使用 和一维数组一样通过下标访问。 #include stdio.h int main() {int arr[3][4] { 0 };int i 0;for (i 0; i 3; i){int j 0;for (j 0; j 4; j){arr[i][j] i * 4 j;}}for (i 0; i 3; i){int j 0;for (j 0; j 4; j){printf(%d\t, arr[i][j]); //为了好看加制表符并换两行}printf(\n\n); }return 0; }在内存中的存储 #include stdio.h int main() {int arr[3][4];int i 0;for (i 0; i 3; i){int j 0;for (j 0; j 4; j){printf(arr[%d][%d] %p\n\n, i, j, arr[i][j]);}}return 0; }通过观察我们发现二维数组在内存中也是从低地址到高地址连续存储的。 数组越界 数组的下标是有范围限制的。 数组的下规定是从0开始的如果数组有n个元素最后一个元素的下标就是n-1。 所以数组的下标如果小于0或者大于n-1就是数组越界访问了超出了数组合法空间的访问。 C语言本身是不做数组下标的越界检查编译器也不一定报错但是编译器不报错并不意味着程序就是正确的所以程序员写代码时最好自己做越界的检查。 #include stdio.h int main() { int arr[10] {1,2,3,4,5,6,7,8,9,10};int i 0;for(i0; i10; i){printf(%d\n, arr[i]);//当i等于10的时候越界访问了} return 0; }二维数组也存在行或列可能越界的问题。
http://www.hkea.cn/news/14562413/

相关文章:

  • 购买网站建设平台中小企业建网站哪个好
  • seo综合查询爱站谷歌搜索引擎363
  • 医疗网站跳出率平均是多少亚马逊品牌官网建设
  • 学院网站建设项目的成本计划书萍乡做网站的公司
  • 2022年seo还值得做吗长沙seo外包
  • 在哪买网站链接wordpress开启静态网页
  • 苏州网站制作开发公司在建设部网站
  • dede模板网站如何搭建企业摄影网站模板
  • 创建一个网站要多少钱重庆市建设工程节能中心网站
  • 网站在空间费用徐州建设工程交易网站
  • 菜鸟建站网wordpress如何超过2M
  • tp做网站签到功能网站开发者模式怎么保存
  • 购物网站用html怎么做wordpress timer
  • 手工做皮具国外的网站wordpress 修改文章作者
  • 网站的营销推广方案及预算北京网站改版费用
  • 怎样在百度上免费建网站石家庄营销网站建设多少钱
  • 龙南网站建设为什么sem的工资都不高
  • 建设部网站四库一平台高考志愿网站开发
  • 做asp.net网站参考文献标志设计说明案例
  • 网站建设vr网站开发需要编程吗
  • 网站自适应布局 html5永州市建设网站
  • 龙象建设集团有限公司网站学做网站论坛会员账号
  • 重庆电商网站建设费用宣城网站优化
  • 网站服务器配置单用什么编辑wordpress
  • 视频网站建设公司网站运营设计
  • 阿里云怎么做淘客网站闲鱼怎么推广自己的产品
  • 溧阳网站建设公司婚庆5个坑
  • 台州做网站软件南阳专业做网站公司哪家好
  • 自己做章网站沧州专业网站建设公司
  • 南京 网站制作公司小型培训机构管理系统