C&C++   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C++数组的存储与初始化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

  下面随笔给出C++数组的存储与初始化的细节内容。

数组的存储与初始化

一维数组的存储

 数组元素在内存中顺次存放,它们的地址是连续的。元素间物理地址上的相邻,对应着逻辑次序上的相邻。

 例如:

一维数组的初始化

在定义数组时给出数组元素的初始值。

  • 列出全部元素的初始值

例如static int a[10]={0,1,2,3,4,5,6,7,8,9};

  • 可以只给一部分元素赋初值

例如static int a[10]={0,1,2,3,4};

  • 在对全部数组元素赋初值时,可以不指定数组长度

例如static int a[]={0,1,2,3,4,5,6,7,8,9}

二维数组的存储

  • 按行存放

例如: float a[3][4];

可以理解为:

其中数组a的存储顺序为:

a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23

二维数组的初始化

  • 将所有初值写在一个{}内,按顺序初始化

    • 例如:static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12

  • 分行列出二维数组元素的初值

  • 可以只对部分元素初始化

  • 列出全部初始值时,第1维下标个数可以省略

    • 例如:static int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

    • 或:static int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

注意:

  • 如果不作任何初始化,内部auto型数组中会存在垃圾数据,static数组中的数据默认初始化为0

  • 如果只对部分元素初始化,剩下的未显式初始化的元素,将自动被初始化为零;

  • 现在我们来看一个用数组存放Fibonacci数列的例子。

例: 求Fibonacci数列的前20

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main() {
 6 
 7     int f[20] = {1,1}; //初始化第0、1个
 8 
 9     for (int i = 2; i < 20; i++) //求第2~19个数
10 
11         f[i] = f[i - 2] + f[i - 1];
12 
13     for (int i=0;i<20;i++) { //输出,每行5个数
14 
15         if (i % 5 == 0) cout << endl;
16 
17             cout.width(12); //设置输出宽度为12
18 
19         cout << f[i];
20 
21     }
22 
23     return 0;
24 
25 }                

运行结果:

例:循环从键盘读入若干组选择题答案,计算并输出每组答案的正确率,直到输入ctrl+z为止。

 1 每组连续输入5个答案,每个答案可以是'a'..'d' 2 
 3 例: 一维数组应用举例
 4 
 5 #include <iostream>
 6 
 7 using namespace std;
 8 
 9 int main() {
10 
11   const char keY[ ] = {'a','c','b','a','d'};
12 
13   const int NUM_QUES = 5;
14 
15   char c;
16 
17   int ques = 0, numCorrect = 0;
18 
19   cout << "Enter the " << NUM_QUES << " question tests:" << endl;
20 
21   while(cin.get(C)) {
22 
23     if(c != '\n') {
24 
25          if(c == keY[ques]) {
26 
27          numCorrect++; cout << " ";
28 
29        } else
30 
31          cout<<"*";
32 
33        ques++;
34 
35     } else {
36 
37       cout << " Score " << static_cast<float>(numCorrect)/NUM_QUES*100 << "%";
38 
39       ques = 0;  numCorrect = 0; cout << endl;
40 
41     }
42 
43   }
44 
45   return 0;
46 
47 }

 

大佬总结

以上是大佬教程为你收集整理的C++数组的存储与初始化全部内容,希望文章能够帮你解决C++数组的存储与初始化所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: