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

网站在浏览器的图标怎么做长春招聘网

网站在浏览器的图标怎么做,长春招聘网,哪些网站做婚纱摄影,设计网站app目录 一维数组数组的创建初始化使用在内存中的存储 二维数组创建初始化使用在内存中的存储 数组越界 一维数组 数组的创建 数组是一组相同类型元素的集合。 int arr1[10]; char arr3[10]; float arr4[10]; double arr5[10];下面这个数组能否成功创建? 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;
}

注意:

  1. 数组是通过下标来访问的,下标是从0开始。
  2. 数组的大小可以通过计算得到。
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(i=0; i<sz; ++i)
{
printf("&arr[%d] = %p\n", i, &arr[i]);
}
return 0;
}

我们通过打印地址来观察数组在内存中的存吃是怎么样的?
在这里插入图片描述
十六进制是从0 ~ 9,A ~ 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(i=0; i<=10; i++){printf("%d\n", arr[i]);//当i等于10的时候,越界访问了}
return 0;
}

在这里插入图片描述
二维数组也存在行或列可能越界的问题。

http://www.yayakq.cn/news/399887/

相关文章:

  • 网站上传后怎么打开石景山网站建设好的公司
  • 长沙建网站制作公司沧州seo排名
  • 假建设银行网站凡科建站和华为云哪个好
  • 建立网站站点的过程网上备案查询
  • 做淘宝的网站有哪些内容亚马逊跨境电商app
  • 合肥建站公司有哪家招聘的教育主管部门建设的专题资源网站是
  • 建设视频网站需要什么知识网页代理访问网站
  • 南和网站seo做网站哪个服务器好
  • 展示型网站php手机端视频网站模板下载
  • 做微信网站公司哪家好装修案例欣赏
  • 数字币网站开发dw网页制作教程自我介绍代码
  • 电子网站开发技术包括望野朗读
  • seo内容优化是什么意思优化设计五年级上册数学答案
  • 怎么看网站被降权wordpress 自定义产品页面
  • 书店商城网站html模板下载宝塔本地wordpress
  • 网站做邮箱吗网站建设优化开发公司哪家好
  • 汽车网站制作模板线上推广专员是干嘛的
  • 厦门北京网站建设大连企业制作网站
  • 如何做印刷报价网站杭州做公司官网的公司
  • 海门公司网站制作费用广州网络推广seo
  • seo品牌优化整站优化北京网站
  • 云加速应用于html网站注册高级工程师
  • 网站可信认证必须做吗甘孜建设机械网站
  • 如何给网站做高质量外链网站后台登陆路径
  • 微网站开发梧州专业网站推广
  • 站长工具综合查询wordpress 4.3.4下载
  • 福田网站设计哪家好电商网站建设机构
  • 酷炫网站设计风格wordpress安装与使用
  • 制作微信的网站有哪些问题做网站做得好的公司有哪些
  • 用iis制作简单网站湖北权威的百度推广