黑马程序员—数组及二维数组
来源:互联网 发布:kevin macleod 知乎 编辑:程序博客网 时间:2024/05/01 03:17
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、数组
1、数组的定义:
数组为构造类型:是由无数个基本数据类型组成的;用来存储一组数据。
声明数组的类型;
声明数组的元素个数(需要多少存储空间)
2、数组的特点:
只能存放一种类型的数据,比如int类型的数组,float类型的数组;
里面存放的数据称为“元素”。
3、数组的格式:
元素类型 数组名[元素个数];例如:int ages[ 3 ] ;
4、数组的简单使用:
简单初始化:int ages[ 5 ] = {13,34,56,35,57,78};
元素有顺序之分,每个元素都有一个唯一的下标(索引),从0开始;
数组元素的访问:a[ i ] ;
5、数组的初始化:
int a[ 3 ] = {4,5,6};
int a[ 3 ] = {2,3};
int a[ ] = {34,56,12};
int a[ 4 ] = {[1] = 34,[0] = 4};
#include <stdio.h>int main(){ //int ages[5] = {10 , 11, 12, 67, 56}; //int ages[5] = {10, 11}; //int ages[5] = {[3] = 10, [4] = 11}; //int ages[] = {10, 11, 14}; // 错误写法 // int ages[]; // 错误写法 /* 只能在定义数组的同时进行初始化 int ages[5]; ages = {10, 11, 12, 14}; */ // 正确写法 // int ages['A'-50] = {10, 11, 12, 14, 16}; //int size = sizeof(ages); //printf("%d\n", size); // 正确写法 /* int count = 5; int ages[count]; ages[0] = 10; ages[1] = 11; ages[2] = 18; */ //printf(); // 错误写法 // 如果想再定义数组的同事进行初始化,数组元素个数必须是常量,或者不写 //int ages[count] = {10, 11, 12}; int ages[] = {10, 11, 12, 78}; // 计算数组元素的个数 int count = sizeof(ages)/sizeof(int); for (int i = 0; i<count; i++) { printf("ages[%d]=%d\n", i, ages[i]); } return 0;}数组的基本使用
void arrayUse(){ // 数组的定义格式: 类型 数组名[元素个数]; int ages[5] = {19, 29, 28, 27, 26}; // 19 19 28 27 26] ages[1] = 29; /* ages[0] = 19; ages[1] = 19; ages[2] = 28; ages[3] = 27; ages[4] = 26; */ /* 遍历:按顺序查看数组的每一个元素 */ for (int i = 0; i<5; i++) { printf("ages[%d]=%d\n", i, ages[i]); }}
6、数组的内存分析:
数组存储空间的划分(内存的分配是由高地址到低地址进行的,但一个数组内部元素又是从低到高进行的);
数组名的作用,查看元素地址;相当于数组名就是数组的地址;
#include <stdio.h>/* 提示用户输入5个学生的成绩,算出平均分并且输出 */int main(){ // 1.定义一个数组来存储成绩 int scores[5]; // 2.提示输入成绩 // 用来存储总分 int sum = 0; for (int i = 0; i<5; i++) { // 2.1 提示输入某个学生的成绩 printf("请输入第%d个学生的成绩:\n", i + 1); // 2.2 存储当前学生的成绩 scanf("%d", &scores[i]); // 2.3 累加成绩 sum += scores[i]; } // 3.计算平均分,并且输出 printf("平均分是%f\n", sum/5.0); return 0;}
7、数组的其他使用:
数组与函数参数
数组元素作为函数参数
数组作为函数参数(sizeof注意)
#include <stdio.h>// 数组作为函数参数,可以省略元素个数// 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组void change(int array[]){ //printf("array==%p\n", array); array[0] = 100;}void change2(int n){ n = 100;}int main(){ int ages[6] = {10, 11, 10, 11, 10, 11}; //printf("ages==%p\n", ages); change(ages); //change2(ages[0]); printf("%d\n", ages[0]); return 0;}
遍历数组元素
两种遍历方式(while循环和for循环)
遍历元素值和元素地址
字符数组的使用
二、二维数组
1、C语言提供了类似与矩阵的多维数组。
三个班,每个班10人:int ages[3][10];
2、初始化
int[3][4] = {1,2,3,4};
int[3][4] = {{},{},{}};
数组元素简单访问;
int a[ ][5] ={3,4,5,6,7,8};
#include <stdio.h>int main(){ int ages[5] = {10, 11, 90, 89, 70}; int ages2[3][5]= { {10, 11, 90, 89, 70}, {10, 11, 90, 89, 70}, {10, 11, 90, 89, 70} }; return 0;}
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
- 黑马程序员—数组及二维数组
- 《黑马程序员》二维数组定义及遍历
- 黑马程序员------------数组 二维数组
- 黑马程序员 二维数组排序
- 黑马程序员_javaCode二维数组
- 黑马程序员_iOS_C_二维数组
- 黑马程序员-C-二维数组&指针数组&二维数组指针
- 黑马程序员————java基础--------二维数组及面向对象(一)
- 黑马程序员——二维数组、面向对象(一)
- 黑马程序员——c语言基础:二维数组
- 黑马程序员——C基础---二维数组
- 黑马程序员——C基础之二维数组
- 《黑马程序员》 二维数组的打印
- 黑马程序员----Java中的二维数组
- 黑马程序员---学习笔记5:二维数组
- 【黑马程序员】【C语言】二维数组
- 黑马程序员——函数及数组
- 黑马程序员—函数及数组
- config_fb_vesa不设置,不能启动radeon模块的原因分析
- 二维数组如何作为函数的参数传递
- 动态规划-二维背包(2)
- iOS 8新功能示例代码,为UILabel添加动画计数功能
- ZOJ3305Get Sauce 状压DP,
- 黑马程序员—数组及二维数组
- Visual C++ 2015 引入更新的 C++ 特性到 Windows API
- MFC内存泄露与检测
- 工作中遇到的shell脚本知识(3)
- UIWebView使用js 修改样式
- 尽量使用strncpy,snprintf,少用strcpy,sprintf
- JTabbedPane快捷切换
- js跳转页面常用方法总结
- 关于TCP/UDP的包过滤函数