php做网站示例,白沟网站建设,企业网站建设的作用,网站建设人员组成承接上篇#xff0c;我们继续讲数组的内容。 八.二维数组的使用 当我们掌握了二维数组的创建和初始化#xff0c;那我们怎么使用二维数组呢#xff1f;其实二维数组访问也是使用下标的形式的#xff0c;二维数组是有行和列的#xff0c;只要锁定了行和列就能唯一锁定数组中…承接上篇我们继续讲数组的内容。 八.二维数组的使用 当我们掌握了二维数组的创建和初始化那我们怎么使用二维数组呢其实二维数组访问也是使用下标的形式的二维数组是有行和列的只要锁定了行和列就能唯一锁定数组中的一个元素。C语言规定二维数组的行是从0开始的列也是从0开始的如下所示 1 int arr[3][5]{1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};图中最右侧绿色的数字表示行号第一行蓝色的数字表示列号都是从0开始的比如我们说第2行第4列快速就能定位出7。 我们已经了解上面内容之后当我们想要找到数字7元素该怎么写代码来实现呢 我们现在可以打印出来一个元素了那能不能将二维数组全部元素打印出来呢 我们这同样还是用循环来实现打印结果的不过用了循环嵌套一个用于列一个用于行。同样我们也可以输入值之后再打印出来。 我们通过下标行和列找到对应的元素。 九.二维数组在内存中的存储
像一维数组一样我们如果想研究二维数组在内存中的存储方式我们也是可以打印出数组所有元素的地址的。 现在在我们想象中二维数组是这样子的 我们可以看到打印地址一行内部两个相邻整型还是相差为4但是当我们跨行的时候发现第一行最后一个元素起始地址与第二行第一个元素起始地址还是相差为4一行内部是连续的跨行之间这两个元素也是连续的。 其实事实上二维数组不是上面所画的一样它是这样的: 二维数组在内存中也是连续存放的。 二维数组是一个一维数组的数组如果把二维数组的一行看做一个一维数组关于二维数组就像一维数组一样数组名加上[j]就可以访问元素了因为是数组就要有数组名所以上面arr[0]为第一行的数组名arr[1]为第二行的数组名arr[2]为第三行的数组名。 十.C99中的变长数组 在C99标准之前C语言在创建数组的时候数组大小的指定只能使用常量 常量表达式或者如果我们初始化数据的话可以省略数组大小。 如
1 int arr1[10];
2 int arr2[35];
3 int arr3[] {1,2,3};这样的语法限制让我们创建数组就不够灵活有时候数组大了浪费空间有时候数组又小了不够用的。 C99中给一个变长数组variable-length array简称 VLA的新特性允许我们可以使用变量指定数组大小。请看下面的代码 1 int n ab;
2 int arr[n]; 上面示例中数组 arr就是变长数组因为它的长度取决于变量n的值编译器没法事先确定只有运行时才能知道n是多少。 变长数组的根本特征就是数组长度只有运行时才能确定所以变长数组不能初始化。它的好处是程序员不必在开发时随意为数组指定一个估计的长度程序可以在运行时为数组分配精确的长度。有一个比较迷惑的点变长数组的意思是数组的大小是可以使用变量来指定的在程序运行的时候根据变量的大小来指定数组的元素个数而不是说数组的大小是可变的。数组的大小一旦确定就不能再变化了。 遗憾的是在VS2022上虽然支持大部分C99的语法没有支持C99中的变长数组没法测试但是在gcc编译器上可以测试。要注意在OJ网站上刷题的时候基本都支持变长数组。 十一.数组练习
1.多个字符从两端移动向中间汇聚 加上休眠函数 能不能从一行上向中间递变呢就是把屏幕上打印的信息清理掉再打印下一个信息。 system 它用于执行系统命令的cls这个命令是清理屏幕的。其实使用数组玩的就是下标通过下标才能找到元素对它进行相关的处理。