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-