1.枚举和数组可以结合:

enum StudentNames{
KENNY, // 0
KYLE, // 1
STAN, // 2
BUTTERS, // 3
CARTMAN, // 4
MAX_STUDENTS // 5};
int main(){
int testScores[MAX_STUDENTS]; // 或者这个句子可以这样写:static_cast(StudentNames::MAX_STUDENTS)
testScores[STAN] = 76;
return 0;}

可以使用枚举类型中的**名称来表示序号索引。
注:不能将MAX_STUDENTS直接写成StudentNames::MAX_STUDENTS,因为如果这样表述,StudentNames必须要是一个命名空间才可以。可以对枚举类型做如下的改变:
namespace StudentNames{
enum StudentNames{
KENNY, // 0
KYLE, // 1
STAN, // 2
BUTTERS, // 3
CARTMAN, // 4
MAX_STUDENTS // 5};
int m
}

这样就可以了。

2.数组:

在用数组作为函数传参的时候,如果不希望数组被修改,可以使用关键字const,如下:
void passArray(const int prime[5]){}

算数组大小时(有几个元素):sizeof(array) / sizeof(array[0])
数组物理内存大小:sizeof(array)

3.二维数组

初始化二维数组:最简单的方法就是,把每一行都加一个大括号框起来,如下:
int array[3][5] ={
{ 1, 2, 3, 4, 5 }, // row 0
{ 6, 7, 8, 9, 10 }, // row 1
{ 11, 12, 13, 14, 15 } // row 2
};

另一个初始化方式:行(第一个数)可以省略。

4.一些关于指针的问题:

指针的释放:把指针delete之后,要将指针置空,比如:
delete p;
p=null;

指针的大小:sizeof(chPtr)
其实无论是什么类型的指针,指针大小都是相同的,指针只不过是存储一个物理地址。跟所指向的类型无关。

指针的初始化:指针如果不被初始化的话,默认情况下会指向一个垃圾地址,而且编译器也会报错。

空指针:空指针是指针变量指向的地址是0,而不是指向的内容是0,不也是指没有初始化的指针。空指针的定义如下:int *p;p=0;
空指针还可以代表布尔值,空指针会表示false,非空指针会表示true。

指针和数组有很多相似的地方。比如,对于数组a,指向它的指针p=a,和&a[0],如果设置二者输出,这二者是一样的。数组的首地址,就是数组第一个元素的地址。
但是二者之间也是有差异的。在使用sizeof函数的时候,sizeof(a)表示的是整个数组的大小,即:元素个数*每个元素的大小;而sizeof§表示的只是指向的物理地址的大小,这个大小相当于一个元素的样子。

指针的算术:对于:int *p;来说,p被赋予地址,因此p+1,p+2也必然是地址,只不过这个地址并不是单纯的地址上的加一加二,而是表示的是int 的大小乘以1或者2。p+1的大小和指针p所指向的类型有关。

数组和枚举、数组、二维数组、指针相关推荐

  1. 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )

    文章目录 一.抽象 二维数组 业务函数 1.二维数组 打印函数 2.二维数组 排序函数 二.完整代码示例 一.抽象 二维数组 业务函数 1.二维数组 打印函数 注意 , 二维数组 作为 函数参数 输入 ...

  2. c语言二维数组 ppt,C语言二维数组与指针.ppt

    C语言二维数组与指针.ppt 好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 ...

  3. C 二维数组,以及自定义二维数组

    C 二维数组,以及自定义二维数组 我们通常情况下是这样定义一个二维数组的: int a[10][15]; 我们分别查看一下a,a[0],*a 都是一样的值吧 我们可以这么理解: a是一个数组的数组 a ...

  4. java二维数组扫雷,C语言二维数组实现扫雷游戏

    #include //使用二维数组实现 扫雷 int main() { char ui[8][8]={ '+','+','+','+','+','+','+','+', '+','+','+','+' ...

  5. 【C语言数组】一、二维数组冒泡排序

    目录 1. 一维数组的创建和初始化 1.1 一维数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 ...

  6. python一维数组和二维数组_Python numpy实现二维数组和一维数组拼接的方法

    Python numpy实现二维数组和一维数组拼接的方法 撰写时间:2017.5.23 一维数组 1.numpy初始化一维数组 a = np.array([1,2,3]); print a.shape ...

  7. 减小程序规模!稀疏数组Sparsearray,数据结构二维数组与稀疏数组转换,Java实现

    文章目录 基本介绍 应用实例 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: ①记录数组一共有几行几列,有多少个不同的值(0除外) ...

  8. java 二维数组位置_java 找到二维数组指定元素的位置

    这个是代码编译时没有问题运行出错.主要功能是首先将txt格式文本导入二维数组,然后在二维数组中查找指定元素的行号和列号.运行结果出错显示为:importjava.util.*;importjava.i ...

  9. 13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

    13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中.二维数组中的数已在主函数中 ...

  10. Java 数组(三)二维数组

    如果一维数组的各个元素仍然是一个数组,那么它就是一个二维数组.二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表所在的列. 一.二维数组的创建 1.先声明, ...

最新文章

  1. 181102 Python环境搭建(安装Sublime Text3)
  2. 抱怨IT公司人才缺乏?留住现有人才方是正途
  3. 6-机器学习启蒙- 深度学习: 图像搜索
  4. 2.4.5 MySQL InnoDB重做与回滚介绍
  5. 通向架构师的道路(第十一天)之Axis2 Web Service(二)
  6. linux 高级IO函数之fcntl mmap/munmap
  7. 13. Window blur() 方法
  8. 吾管不到的地方,资源已开始混乱
  9. LINUX 线程启动回调函数
  10. idea打包 jar文件
  11. (6)微信运动点赞(下)-JsDroid引流脚本混合式开发技术系列教程By飞云脚本学院
  12. C++中++cnt1[s1[i]-‘a‘]的意思
  13. 存储服务器和磁盘阵列有什么区别
  14. HTML的基本标签及属性
  15. SVN SSL错误解决
  16. win10sas安装教程_win10s是什么版本_windows10s版本的特性图文教程
  17. 2021年6月4日大学化学无机原理(13)原子的电子层结构
  18. php中可以表示当前日期的函数,在PHP中,可以使用()函数来获取当前日期和时间...
  19. 用Custom Element来实现UI组件
  20. 什么是粉红喜马拉雅盐,比普通盐更好吗?

热门文章

  1. SaltStack 远程命令执行漏洞(CVE-2020-16846)
  2. 《TP5.0学习笔记---百度地图封装》
  3. PostMan动态参数及循环调用
  4. mysql ibp_【MySQL】值得关注的参数
  5. Android APP报毒和排查解决
  6. 在linux桌面上创建一个文本,如何在Ubuntu中创建文档
  7. 并查集(13张图解)--擒贼先擒王
  8. Java Web用户信息管理系统的简单设计(增删查改)
  9. 电子信箱注册和手机邮箱一样吗?
  10. 实战游戏项目管理4-线上管理篇