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