C++基础学习笔记(一)——参考黑马的顺序

一、如何建立一个完整的项目

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修饰的全局变量)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值