经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
C/C++知识教程:数组
来源:cnblogs  作者:大天使维迦  时间:2021/1/25 11:18:11  对本文有异议

 


 

1. 一维数组的定义及引用

定义

类型说明符 数组名[常量表达式];复制代码

注意事项

常量表达式的值必须是正整数

数组的起始元素下标为0

一维数组在内存中是如何存放的

存储方式同样从低地址到高地址,并且所有数组元素都存储在一个连续的内存单元中,数组所占用的内存大小为数组元素类型所占用的内存大小乘以数组元素的个数。

初始化

定义

数组类型 数组名[N]={数组元素1,数组元素2,……数组元素N};复制代码

注意事项

切不可在定义数组后再对整个数组进行赋值操作,可单个元素赋值

2. 二维数组的定义及引用

定义

类型说明符 数组名[常量表达式1][常量表达式2];复制代码

为了便于理解,都将二维数组视为一个矩阵,常量表达式1表示矩阵的行数,而常量表达式2表示矩阵的列数。

3. 多维数组的定义及引用

定义

类型说明符数组名[常量表达式1][常量表达式2][常量表达式3]……;复制代码

4. 字符数组的定义及引用

易错点

定义了不同类型的字符数组来存放相同的字符,它们占用的内存大小相差很大.

arr代表的是数组的首地址,不能将常量的值赋给数组地址

&arr[0]和arr的值相同,但是占用的内存大小并不相同,&arr[0]代表一个地址变量,arr代表的是整个数组,

5.数组作为函数参数的易错点解析

注意点

1).使用数组名作为参数进行传递时需要注意,传递的是数组的首地址,

#include<stdio.h>#include<stdlib.h>#define N 8int*creat(){int i;printf("creat()函数中产生数组元素\n");int arr[N];for(i=0;i<N;i++){arr[i]=rand()%100;printf("%d\t",arr[i]);}returnarr;}voidprint(int arr[],int n){int i;for(i=0;i<n;i++){printf("%d\t",arr[i]);}}int main(void){int i;int*p;p=creat();printf("\n通过函数调用返回后得到的数组\n");print(p,N);return0;}复制代码

运行结果

creat()函数中产生数组元素41 67 34 0 69 24 78 58通过函数调用返回后得到的数组-858993460-858993460-858993460-858993460-858993460-858993460 6 1245056复制代码

分析;因为在creat()函数中定义的数组arr在creat()函数调用结束后被自动释放掉了,所以不可能得到正确的结果。

数组arr的生存周期随着函数调用的结束而结束了

在create函数 定义arr前面加上static

如果你也想成为程序员,想要快速掌握编程,赶紧关注小编加入学习企鹅圈子吧!

里面有资深专业软件开发工程师,在线解答你的所有疑惑~编程语言入门“so easy”

资料包含:编程入门、游戏编程、课程设计等。

免费学习书籍:


 

免费学习资料:


 

6. 动态数组的创建及引用

定义

类型说明符*数组名=(类型说明符*)malloc(数组长度*sizeof(类型说明符));复制代码

注意点

如果要创建一个N维的动态数组,那么要从第一维开始创建,直到第N维为止;而释放时与创建时相反,即从第N维开始释放,直到第一维为止。

人工释放free()

 

原文链接:http://www.cnblogs.com/zuishuaideou/p/14315196.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号