网龙C++游戏训练营培训课程第一阶段(上):数组与指针

6月有幸参加网龙游戏公司推出的C++线上培训课程,为期一个月。分为四个阶段,即
  1. C++中的重要内容
  2. 网络编程
  3. 数据库设计
  4. 游戏设计与实现
之前或多或少有接触过四个部分的内容,但没有做一个系统的记录,借助本次线上学习,对各部分内容进行系统性的整理,便于日后复习,也欢迎大家交流。
第一阶段传送门:
第一阶段(上):数组与指针

1.数组

数组用以存储一系列相同类型元素的集合 。这部分内容主要掌握一维、二维和多维数组的声明、初始化、赋值和引用。

 一维、二维以及多维数组定义如下:

示例:
#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
       //一维数组
       int score[5] = { 1,2,3,4,5 };
       cout << "一维输出:" << endl;
       for (int i = 0; i < sizeof(score) / sizeof(int); i++)
       {
              cout << score[i] <<"  ";
       }
       cout << endl;
       //二维数组
       int mark[2][3] = { {89,90,91},{90,91,92} };
       cout << "Column:" << sizeof(mark) / sizeof(mark[0]) << endl;
       cout <<"Row:"<< sizeof(mark[0]) / sizeof(mark[0][0]) << endl;
       cout << "二维输出:" << endl;
       for (int i = 0; i < sizeof(mark) / sizeof(mark[0]); i++)
       {
              for (int j = 0; j < sizeof(mark[0]) / sizeof(mark[0][0]); j++)
              {
                     cout << mark[i][j] << "  " ;
              }
              cout << endl;
       }
       //多维数组
       int abc[3][2][3] = { {{1,2,3},{3,4,5}},
       {{5,6,7},{7,8,9}},
       {{9,10,11},{11,12,13}} } ;
       
       cout << "三维输出:" << endl;
       for (int i = 0; i < sizeof(abc) / sizeof(abc[0]); i++)
       {
              for (int j = 0; j < sizeof(abc[0]) / sizeof(abc[0][0]); j++)
              {
                     for (int k = 0; k < sizeof(abc[0][0]) / sizeof(abc[0][0][0]); k++)
                     {
                           cout << abc[i][j][k] << "  ";
                     }
                     cout << "  ";
              }
              cout << endl;
       }
    return 0;
}
结果如下图:

2.指针

指针用以访问内存单元的地址与数据,定义如下。

示例:
int main()
{
       int a = 1;
       int *p = &a;
       cout << "a的地址:" << &a << endl;
       cout << "p指向的地址:" << p << endl;
       cout << "p指向地址的值:" << *p << endl;
       int b = 2;
       int c = 3;
       int *q = nullptr;    //定义空指针
       int *q1 = &b;
       int *q2 = &c;
       cout << "q1指向地址的值:" << *q1 <<endl;
       cout << "q2指向地址的值:" << *q2 << endl;
       cout << "交换后:" << endl;
       q = q1;       //交换指针地址
       q1 = q2;
       q2 = q;
       cout << "q1指向地址的值:" << *q1 << endl;
       cout << "q2指向地址的值:" << *q2 << endl;
    return 0;
}
结果如下

3.数组与指针的关系

指针在数组中的表现情况用如下例子说明:
int main()
{
       int a[3] = { 0,1,2 };
       int *p = nullptr;
       int *pa = nullptr;
       p = &a[0];
       pa = p + 1;   //指向a[1]
       cout << pa << endl;
       cout << *pa << endl;
       pa = p + 2;   //指向a[2],距离地址增加4个字节
       cout << pa << endl;
       cout << *pa << endl;
       pa = p + 3;
       cout << pa << endl;
       cout << *pa << endl;
    return 0;
}
N
结果如下:
JVYC-BMHX2-G77MM-

猜你喜欢

转载自blog.csdn.net/s1314_JHC/article/details/80557889
今日推荐