——黑马程序员——C语言中一维数组基本概念和初始化
来源:互联网 发布:天猫双11交易数据 编辑:程序博客网 时间:2024/06/05 23:06
-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------
C语言中一维数组基本概念和初始化
一、基本概念
数组:一组有序且类型相同数据的集合
数组元素:构成数组的每个数据
数组下标:数组中每个数组元素的位置的索引或指示,下标从0开始
数组的维数:数组元素下标的个数,根据数组的维数可以分为一维、二维、三维和多维数组
二、分类
按存储内容分为:
数值数组:用来存储数值的
字符数组:用来存储字符'a'
指针数组:用来存储指针(地址)的
结构数组:用来存放一个结构类型的数据
一维数组:只用一个下标的数组
一般形式:类型符 数组名 [ 常量表达式 ],如 int a[5],表示定义了一个整型数组,数组名为a,此数组有5个整型元素,5也称作是数组的长度
一维数组初始化:给各个数组元素赋值
初始化方式:
三、一位数组的初始化
1、定义的同时全部初始化
int a[5] = {0,1,2,3,4};
2、定义的同时部分初始化
int a[5] = {0,1,2};
a数组中有5个元素,只给前3个元素初始化了值,系统会自动给后面2个元素赋值为0
int a[5] = { [3] = 1,[4] = 2 };
a数组中有5个元素,只给下标为3的元素 a[3] 赋值为1,下标为4的元素 a[4] 赋值为2,系统会自动给其他元素赋值为0
3、定义的同时使数组全部赋值为0
int a[5] = {0};
a数组中有5个元素,只给第一个元素赋值为0,系统会自动给其他元素赋值为0
int a[5] = {0,0,0,0,0};
a数组中有5个元素,给数组所有元素赋值为0
4、当对于数据的个数已经确定是,可以不指定数组长度
int a[ ] = { 0,1,2,3,4 }
5、先定义然后初始化
int a[5];
a[0] = 0;
a[1] = 1;
a[2] = 2;
a[3] = 3;
a[4] = 4;
代码如下:
#include <stdio.h>#include <stdlib.h>int main(){ printf("一维数组初始化方式:\n"); //1、定义同时初始化 int a[5] = {0,1,2,3,4}; int i; //遍历数组中的每个元素 printf(" 1、定义同时初始化\n"); for(i = 0; i < 5; i++) {//打印数组元素的每个值printf("数组元素的值为:%d\n",i,a[i]); } //2、定义同时部分初始化 int a1[5] = {0,1,2}; int j; //遍历数组中的每个元素 printf(" 2、定义同时部分初始化\n"); for(j = 0; j < 5; j++) {//打印数组元素的每个值printf("数组元素的值为:%d\n",a1[j]); } //2、定义同时部分初始化 int a2[5] = {[3] = 1,[4] = 2}; int k; //遍历数组中的每个元素 printf(" 2、定义同时部分初始化\n"); for(k = 0; k < 5; k++) {//打印数组元素的每个值printf("数组元素的值为:%d\n",a2[k]); } //3、定义同时全部初始化为0 int a3[5] = {0}; int m; //遍历数组中的每个元素 printf(" 3、定义同时全部分初始化为0\n"); for(m = 0; m < 5; m++) {//打印数组元素的每个值printf("数组元素的值为:%d\n",a3[m]); } //3、定义同时全部初始化为0 int a4[5] = {0,0,0,0,0}; int n; //遍历数组中的每个元素 printf(" 3、定义同时全部分初始化为0\n"); for(n = 0; n < 5; n++) {//打印数组元素的每个值printf("数组元素的值为:%d\n",a4[n]); } //4、不指定数组的长度 int b[] = {0,1,2,3,4}; int t; //遍历数组中的每个元素 printf(" 4、不指定数组的长度\n"); for(t = 0; t < 5; t++) {//打印数组元素的每个值printf("数组元素的值为:%d\n",b[t]); } //5、先定义后初始化 int a5[5]; int r; a5[0] = 0;a5[1] = 1;a5[2] = 2;a5[3] = 3;a5[4] = 4; //遍历数组中的每个元素 printf(" 5、先定义后初始化\n"); for(r = 0; r < 5; r++) {//打印数组元素的每个值printf("数组元素的值为:%d\n",a5[r]); } system("pause");return 0;}测试结果为:
注意:如果一个数组不初始化,里面的值会是垃圾值,因此数组使用之前一定要初始化,建议定义的时候就初始化
测试代码:
#include <stdio.h>#include <stdlib.h>int main(){ //定义一个数组但不初始化 int a[5]; int n; //遍历数组中的每个元素 for(n = 0; n < 5; n++) {//打印数组元素的每个值 <span style="white-space:pre"></span>printf("\n");printf(" 数组元素的值为:%d\n",a[n]); }system("pause");return 0;}测试结果:
四、一位数组的存储方式
计算机给数组分配一块连续的存储空间
测试代码:
#include <stdio.h>#include <stdlib.h>int main(){ int i; int j; //定义一个整型数组并初始化 int a[5] = {0,1,2,3,4}; //定义一个字符数组并初始化 char ch[3] = {'a','b','c'}; //打印整型数组a[5]的元素地址 printf("数组a[5]每个元素的地址为\n"); //用for循环取数组元素的地址 for(i = 0; i < 5; i++) {//打印出数组每个元素的地址printf(" %p\n",&a[i]); } //打印字符数组的元素地址 printf("数组ch[3]每个元素的地址为\n"); //用for循环取数组元素的地址 for(j = 0; j < 3; j++) {//打印出数组每个元素的地址printf(" %p\n",&ch[j]); }system("pause");return 0;}测试结果:
数组名代表数组的首地址,从首地址的位置一次存入数的每一个元素
每个元素占用相同的字节数,所占字节数取决于数组的类型
每个数组元素之间的地址是连续的
测试代码:
#include <stdio.h>#include <stdlib.h>int main(){ int i; int j; //定义一个整型数组并初始化 int a[5] = {0,1,2,3,4}; //定义一个字符数组并初始化 char ch[3] = {'a','b','c'}; //打印整型数组a[5]的首地址printf("数组a[5]的首地址为:%p\n",&a); //打印整型数组a[5]的元素地址printf("数组a[5]每个元素的地址为\n"); //用for循环取数组元素的地址 for(i = 0; i < 5; i++) {//打印出数组每个元素的地址printf(" %p\n",&a[i]); } //打印字符数组的首地址 printf("数组ch[3]的首地址为:%p\n",&ch); //打印字符数组的元素地址 printf("数组ch[3]每个元素的地址为\n"); //用for循环取数组元素的地址 for(j = 0; j < 3; j++) {//打印出数组每个元素的地址printf(" %p\n",&ch[j]); }system("pause");return 0;}测试结果:
结论:
数组名是一个常量,存储的是数组的首地址,数组名的地址和数组元素的第一个元素地址相同!
0 0
- ——黑马程序员——C语言中一维数组基本概念和初始化
- 黑马程序员——C语言基础--数组和字符串
- 黑马程序员—C语言笔记—数组和字符串
- 黑马程序员——c语言基础:数组和字符串
- 黑马程序员——C语言数组
- 黑马程序员——C语言数组
- 黑马程序员--C语言——数组
- 黑马程序员——C语言---数组
- 黑马程序员——C语言基础学习(一)---C语言中的基本概念总结
- ——黑马程序员——C语言中二维数组、字符数组和字符串
- 黑马程序员——C语言------数组和字符串数组、字符串
- 黑马程序员——C语言之指针数组和数组指针的区别
- 黑马程序员————C语言数组
- 黑马程序员——C语言——数组
- 黑马程序员——C语言——数组
- 黑马程序员——C语言—数组、指针
- 黑马程序员———C语言 一维数组
- 黑马程序员——C语言基础06—数组
- 51nod 1368:黑白棋 二分图最大匹配
- 八皇后——递归学习
- 主线程和子线程的同步控制
- 1040. 有几个PAT(25)
- 磁盘驱动器
- ——黑马程序员——C语言中一维数组基本概念和初始化
- mysql5.6.26改变默认数据目录问题
- 博客又要搬家了。。 搬回ltwy.me
- Linux wait函数解析2
- MyBatis的初步使用
- Python深入:setuptools简介
- Easyui
- 编程之美-字符串移位包含的问题
- 异常和异常处理(windows平台)