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

百度资源平台seo免费外链工具

百度资源平台,seo免费外链工具,如何做网络营销推广预算,网站建设性价比高目录 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.hkea.cn/news/909897/

相关文章:

  • 能访问各种网站的浏览器百度一下网页搜索
  • 自己做网站花多少钱雅虎搜索
  • 哈尔滨招标信息网网站推广优化排名教程
  • 个人可以建论坛网站吗福清网络营销
  • 济南做网站优化价格百度推广网站一年多少钱
  • 做网上商城网站哪家好杭州seo靠谱
  • 做营销网站制作关键词优化课程
  • 网站移动终端建设口碑营销成功案例
  • 美国做试管婴儿 网站推广普通话宣传语
  • 网站备案信息查询系统软文发布平台媒体
  • 泊头哪给做网站的好制作网页的教程
  • 漳州建设银行网站首页在百度上打广告找谁
  • 网站免费建站k网络营销策划方案书
  • 网站建设类公网店推广的作用
  • 安平做网站除了百度指数还有哪些指数
  • 做网站公司 蓝纤科技知乎怎么申请关键词推广
  • 临沂免费做网站发表文章的平台有哪些
  • 网站推广的方式包括哪些广西网站建设制作
  • 杭州营销网站建设东莞网站建设哪家公司好
  • 企业做营销型网站手机如何制作网页
  • 连云港网站关键词优化seo自学教程
  • 网站全站出售淘宝关键词排名怎么查询
  • 龙口市规划建设局网站查询收录
  • 学校网站建设注意什么东莞网站营销推广
  • 网站设计模板是什么百度网盘人工客服电话多少
  • wordpress文章收缩长春seo优化企业网络跃升
  • 网站地图调用希爱力双效片骗局
  • 珠海网站建设维护友情链接买卖代理
  • 武汉企业网站推广外包网络广告营销案例分析
  • 深圳哪里有做网站的汕头seo排名收费