当前位置: 首页 > 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/16195.html

相关文章:

  • 深圳西乡网站制作seo外链
  • 香港人做evus在哪个网站咖啡的营销推广软文
  • wordpress 人物照片墙seo sem论坛
  • 检测软件定制网站关键词优化排名推荐
  • 鄂州网站推广优化技巧海城seo网站排名优化推广
  • 做ftp网站怎么设置seo技术培训山东
  • 福鼎建设局网站产品seo怎么优化
  • 有哪些网站软件可以做网站的原型沧州网站建设推广
  • 容桂网站制作效率好网站seo如何优化
  • 企业标准网站模板浙江网络科技有限公司
  • 北京网站seo设计兰州网络推广关键词优化
  • 下载官方app下载安装技术优化seo
  • 网站上传安装正规网站优化推广
  • 西安市网站建设如何在百度上开店铺
  • wordpress适合外贸的主题杭州关键词优化平台
  • 做网站项目后台的外链互换平台
  • 哈尔滨最专业的网站建设如何提升关键词的自然排名
  • 能上传文件的网站临汾网络推广
  • 网站空间费用成全在线观看免费高清动漫
  • 企业所得税怎么计算昆明seo网站建设
  • 销售平台网站建设方案模板想做网络推广的公司
  • 刷赞网站推广免费软件品牌推广是做什么的
  • 企业做网站乐云seo快速上线南京seo报价
  • 武汉网站建设哪家专业短视频seo公司
  • 南山网站建设公百度seo权重
  • 网站排名点击河北seo技术培训
  • 公司网站做一下多少钱兔子bt搜索
  • 建网站 企汇网站长统计app软件下载官网
  • 有一个做搞笑英语视频网站电商网站建设 网站定制开发
  • 资兴网站建设营销型公司网站建设