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

哪些网站是增值网百度知道首页登录入口

哪些网站是增值网,百度知道首页登录入口,国外教做美食网站,网站后台管理系统怎么做目录 1. 一维数组的创建和初始化 1.1数组的创建 1.2数组的初始化 2. 一维数组的使用 3. 一维数组在内存中的存储 4. 二维数组的创建和初始化 5. 二维数组的使用 6. 二维数组在内存中的存储 7. 数组越界 8. 数组作为函数参数 1. 一维数组的创建和初始化 1.1数组的创…

目录

1. 一维数组的创建和初始化

1.1数组的创建

1.2数组的初始化 

2. 一维数组的使用

3. 一维数组在内存中的存储

4. 二维数组的创建和初始化

5. 二维数组的使用

6. 二维数组在内存中的存储

7. 数组越界

8. 数组作为函数参数


1. 一维数组的创建和初始化

1.1数组的创建

数组是固定大小的序列容器:它们包含按严格线性序列排序的特定数量的元素

//代码1
int arr1[10];//代码2,在C99标准支持了变长数组,才可以使用
int count = 10;
int arr2[count];//代码3
char arr3[10];
float arr4[1];
double arr5[20];
注: 数组创建,在 C99 标准之前,[ ] 中要给一个 常量 才可以,不能使用变量。在 C99 标准支持了变长数组的概念,数组的大小可以使用变量指定,但是数组不能初始化。

1.2数组的初始化 

数组的初始化是指在创建数组的同时给数组的内容一些合理初始值,初始化又分为完全初始化和不完全初始化
    //不完全初始化int arr[10] = { 1,2,3,4 };int arr1[10];char arr2[3] = { 'a','b' };//完全初始化int arr3[] = { 1,2,3,4 };int arr4[3] = { 1,2,3 };
数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确
定。

2. 一维数组的使用

对于数组的使用我们之前介绍了一个操作符: [ ] ,下标引用操作符。它其实就数组访问的操作符
#include <stdio.h>
int main()
{//数组的不完全初始化int arr[10];//计算数组的元素个数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;
}

3. 一维数组在内存中的存储

#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;
}

 随着数组下标的增长,元素的地址,也在有规律的递增。 由此   可以得出结论:一维数组在内存中是连续存放的。

4. 二维数组的创建和初始化

//数组创建
int arr[3][4];
char arr[3][5];
double arr[2][4];
//数组初始化
int arr[3][4] = {1,2,3,4,5};
int arr[3][4] = {{1,2},{4,5}};
int arr[][4] = {{2,3},{4,5}};
//二维数组如果有初始化,行可以省略,列不能省略

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 ", arr[i][j]);}}return 0;
}

6. 二维数组在内存中的存储

#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", i, j,&arr[i][j]);}}return 0;
}

输出结果是: 

 随着数组下标的增长,元素的地址,也在有规律的递增。 由此   可以得出结论:二数组在内存中是连续存放的。

7. 数组越界

数组的下标是有范围限制的。
数组的下规定是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1。 所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的访问。
C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就 是正确的,

8. 数组作为函数参数

往往我们在写代码的时候,会将数组作为参数传个函数,如下代码(冒泡函数)
#include <stdio.h>
void bubble_sort(int arr[])
{int sz = sizeof(arr)/sizeof(arr[0]);int i = 0;for(i=0; i<sz-1; i++){int j = 0;for(j=0; j<sz-i-1; j++){if(arr[j] > arr[j+1]){int tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp;}}}
}
int main()
{int arr[] = {3,1,7,5,8,9,0,2,4,6};bubble_sort(arr);//是否可以正常排序for(int i=0; i<sizeof(arr)/sizeof(arr[0]); i++){printf("%d ", arr[i]);}return 0;
}

结果发现无法正常排序 

 我们打开监视窗口,发现sz = 1,他不是应该是10吗,难道数组作为函数参数的时候,不是把整个数组的传递过吗

由此我们可以看出arr应该是一个指针,那他到底是指向哪里的呢,我们测试一下
#include <stdio.h>
int main()
{int arr[10] = {1,2,3,4,5};printf("%p\n", arr);printf("%p\n", &arr[0]);printf("%d\n", *arr);//输出结果return 0;
}

由此我们可以知道数组名代表首元素的地址,但是有二个特殊:
1. sizeof(数组名),计算整个数组的大小,sizeof内部单独放一个数组名,数组名表示整个数 组。
2. &+数组名,取出的是数组的地址。&+数组名,数组名表示整个数组。
http://www.mnyf.cn/news/48744.html

相关文章:

  • 深圳传媒有限公司北京seo优化费用
  • wordpress html5视频插件百度app优化
  • 网站图片少影响seo吗杭州seo百度关键词排名推广
  • 建凡网站万网的app叫什么
  • 在线听音乐网站建设百度推广登录首页
  • wordpress实现网站的登陆功能域名注册查询软件
  • 长春公司网站建设千锋教育郑州校区
  • 网站备案最新备案号自助建站
  • wordpress淘宝联盟seo软件服务
  • 金阳龙泉苑网站建设重庆专业做网站公司
  • php做电商网站开题报告站长工具 seo查询
  • 如何做网站啊查询网站
  • 浙江和海建设集团网站谷歌浏览器下载官方正版
  • 数据库设计对网站开发的影响网络营销推广方案步骤
  • 启博微分销企业专业搜索引擎优化
  • 加强网站信息内容建设的意见腾讯企点账户中心
  • 微网站需要域名吗宁波seo教程
  • 教育网站制作服务网站推广的渠道有哪些
  • 怎么做点图片连接网站百度推广登录入口
  • 贵州省交通工程建设质监局网站今日军事新闻头条打仗
  • 为什么使用html5网站怎么建立自己的企业网站
  • 南宁建站服务公司保定网站seo
  • 南宁网站制作最新招聘信息推广资讯
  • 园林景观设计公司点评的网站和论坛热搜榜排名前十
  • 海口手机版网站建设推广普通话的意义50字
  • 怎么根据别人的网站做自己的网站国内最新新闻摘抄
  • 呼伦贝尔做网站公司2023年8月份新冠症状
  • 可信网站认证有用吗seo研究中心怎么了
  • 网站内容建设机制网络广告设计
  • 一级域名网站怎样收费的舆情分析网站免费