一、如何建立一个完整的项目
1、项目中包含的一些必要的文件及说明
源文件:.cpp后缀的文件一般用来编写函数,定义函数
头文件:.h头文件用来定义.cpp中使用的函数,在头文件中进行定义后,可以在项目中的其他.cpp文件中直接使用该函数(前提是,在所有.cpp文件中加入 include “头文件名称.h” )
二、定义
1、宏定义:define 常量名 常量值
2、const定义: const 数据类型 常量名=常量值(在变量前加上const,将变成常量)
const的具体使用如下:(使用指针对const的用法做出示范,以下的限制只针对指针能做的修改)
(1)const int *p = &a 此时能修改指针的地址,但不能修改指针指向的数值
(2)int *const p = &a 此时能修改指针指向的数值,但不能修改指针地址
(3)const int *const p 什么都无法修改
3、数组定义: 定义数组时,必须有数值(数组的长度or数值)
4、指针定义: 数据类型 * 指针名称(&用来给指针赋值 p = &a)
可以通过*p找到指针指向的地址中的数值,然后进行修改(使用指针时,所占的内存较小,可以在函数赋值时使用)
例子: 在对数值传递(交换)的函数中,交换运算后的原始参数并不会改变 ;但通过地址修改后的数值交换的函数中,原始参数会随之修改
使用地址进行冒泡排序:
void bubbleSort(int* p, int len){ 使用的是指针定义初始参数,但是此时的用途与数组一致,使用指针地址,可以是参数发生实际改变
for (int i = 0; i < len; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (p[j] < p[j+1]) {
int temp = p[j];
p[j] = p[j+1];
p[j + 1] = temp;
}
}
}
}
void printArray(int* p, int len) {
for (int i = 0; i < len; i++) {
cout << p[i] << endl;
}
}
int main() {
int a[10] = { 4,3,6,9,1,2,10,8,7,5 };
int len = sizeof(a) / sizeof(a[0]);
bubbleSort(a, len); 数组的名称=数组的首地址,因此在函数中初始定义时,使用的是指针定义
printArray(a, len);
system("pause");
return 0;
}
5、函数定义: void定义函数时,表示函数无需返回数值(如果函数出现在运行程序后面,使用前需要提前声明)
6、结构体定义与应用: 一般用于构建属性较多的结构,如用于统计人物信息等等
struct Student { 搭建学生的结构,包括姓名,年龄,成绩
string name;
int age;
int score;
};
int main() {
Student s1; 填充信息的第一种方法
s1.name = "张三";
s1.age = 18;
s1.score = 100;
cout << "姓名:" << s1.name << "年龄:" << s1.age << "成绩:" << s1.score << endl;
struct Student s2 = { "李四",19,99 }; 填充信息的第二种方法
cout << "姓名:" << s2.name << "年龄:" << s2.age << "成绩:" << s2.score << endl;
system("pause");
return 0;
}
使用嵌套结构体进行年龄排序:
struct Hero {
string name;
int age;
string xingb;
};
struct temp {
string name;
int age;
string xingb;
};
void printHero(Hero h[], int len) {
for (int i = 0; i < len; i++) {
for (int j = 0; j < len - i - 1; j++) {
struct Hero temp= h[j];
if (h[j].age > h[j+1].age) {
temp = h[j];
h[j] = h[j + 1];
h[j + 1] = temp;
}
}
}
for (int i = 0; i < len; i++) {
cout << "英雄的名字:" << h[i].name << " 年龄:" << h[i].age << " 性别:" << h[i].xingb << endl;
}
}
int main() {
struct Hero h[5] = {
{"刘备",23,"男"},
{"关羽",22,"男"},
{"张飞",20,"男"},
{"赵云",21,"男"},
{"貂蝉",19,"女"}
};
struct temp t[1];
int len = sizeof(h) / sizeof(h[0]);
printHero(h,len);
system("pause");
return 0;
}
三、小tip
1、多行注释的快捷键: ctrl+k+c/u
2、如何计算参数的长度:
int len = sizeof(a) / sizeof(a[0])
sizeof(int / short / long / 变量名):计算数据类型所占内存大小
3、默认输出小数时,最多输出6位
4、char字符型只能放一个字符,使用方法:'a’
5、输入:cin>>
6、随机生成数字:
int random = rand()%100
srand((unsigned int)time(NULL)); 加上时间种子,可多次随机生成
7、全局变量,静态变量和常量在程序中存放同一区域中
静态变量:在局部变量前加static
常量包括(字符常量:“字符串” 以及const修饰的全局变量)