知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

内附完整的源代码示例(有版权问题,私聊删除)

发表时间:2022-03-25来源:网络

文章目录

一、初识C++1.1 第一个C++程序1.1.1 创建项目1.1.2 创建文件1.1.3 编写代码1.1.4 运行程序1.2 注释1.3 变量1.4 常量1.5 关键字1.6 标识符命名规则二、数据类型2.1 整型2.2 sizeof关键字2.3 实型(浮点型)2.4 字符型2.5 转义字符2.6 字符串型2.7 布尔类型 bool2.8 数据的输入三、运算符3.1 算术运算符3.2 赋值运算符3.3 比较运算符3.4 逻辑运算符四、程序流程结构4.1 选择结构4.1.1 if语句4.1.2 三目运算符4.1.3 switch语句4.2 循环结构4.2.1 while循环语句4.2.2 do...while循环语句4.2.3 for循环语句4.2.4 嵌套循环4.3 跳转语句4.3.1 break语句4.3.2 continue语句4.3.3 goto语句五、 数组5.1 概述5.2 一维数组5.2.1 一维数组定义方式5.2.2 一维数组数组名5.2.3 冒泡排序5.3 二维数组5.3.1 二维数组定义方式5.3.2 二维数组数组名5.3.3 二维数组应用案例六、 函数6.1 概述6.2 函数的定义6.3 函数的调用6.4 值传递6.5 函数的常见样式6.6 函数的声明6.7 函数的分文件编写七、指针7.1 指针的基本概念7.2 指针变量的定义和使用7.3 指针所占内存空间7.4 空指针和野指针7.5 const修饰指针7.6 指针和数组7.7 指针和函数7.8 指针、数组、函数八、结构体8.1 结构体基本概念8.2 结构体定义和使用8.3 结构体数组8.4 结构体指针8.5 结构体嵌套结构体8.6 结构体做函数参数8.7 结构体中 const使用场景8.8 结构体案例8.8.1 案例18.8.2 案例2

一、初识C++

1.1 第一个C++程序

编写一个C++程序总共分为4个步骤

创建项目创建文件编写代码运行程序

1.1.1 创建项目

​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开

1.1.2 创建文件

右键源文件,选择添加->新建项

给C++文件起个名称,然后点击添加即可。

1.1.3 编写代码

#include using namespace std; int main() { cout cout float f1 = 3.14f; double d1 = 3.14; cout 28FS6094^126`31US63?95_127DEL

ASCII 码大致由以下两部分组成:

ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。

2.5 转义字符

作用:用于表示一些不能显示出来的ASCII字符

现阶段我们常用的转义字符有:\n \\ \t

转义字符含义ASCII码值(十进制)\a警报007\b退格(BS) ,将当前位置移到前一列008\f换页(FF),将当前位置移到下页开头012\n换行(LF) ,将当前位置移到下一行开头010\r回车(CR) ,将当前位置移到本行开头013\t水平制表(HT) (跳到下一个TAB位置)009\v垂直制表(VT)011\\代表一个反斜线字符""092’代表一个单引号(撇号)字符039"代表一个双引号字符034?代表一个问号063\0数字0000\ddd8进制转义字符,d范围0~73位8进制\xhh16进制转义字符,h范围09,af,A~F3位16进制

示例:

int main() { cout string str = "hello world"; cout //整型输入 int a = 0; cout int a1 = 10; int b1 = 3; cout //赋值运算符 // = int a = 10; a = 100; cout int a = 10; cout int a = 10; int b = 10; cout cout cout int score = 0; cout cout cout cout cout cout cout case 结果1:执行语句;break; case 结果2:执行语句;break; ... default:执行语句;break; }

示例

int main() { //请给电影评分 //10 ~ 9 经典 // 8 ~ 7 非常好 // 6 ~ 5 一般 // 5分以下 烂片 int score = 0; cout int num = 0; while (num int num = 0; do { cout cout for (int j = 0; j //1、在switch 语句中使用break cout //2、在循环语句中用break for (int i = 0; i break; //跳出循环语句 } cout for (int j = 0; j break; } cout if (i % 2 == 0) { continue; } cout //定义方式1 //数据类型 数组名[元素个数]; int score[10]; //利用下标赋值 score[0] = 100; score[1] = 99; score[2] = 85; //利用下标输出 cout cout cout 1,2,3,4,5,6,7,8,9,10 }; cout for (int j = 0; j int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i //方式1 //数组类型 数组名 [行数][列数] int arr[2][3]; arr[0][0] = 1; arr[0][1] = 2; arr[0][2] = 3; arr[1][0] = 4; arr[1][1] = 5; arr[1][2] = 6; for (int i = 0; i cout 4,5,6} }; //方式3 //数据类型 数组名[行数][列数] = { 数据1,数据2 ,数据3,数据4 }; int arr3[2][3] = { 1,2,3,4,5,6 }; //方式4 //数据类型 数组名[][列数] = { 数据1,数据2 ,数据3,数据4 }; int arr4[][3] = { 1,2,3,4,5,6 }; system("pause"); return 0; }

总结:在定义二维数组时,如果初始化了数据,可以省略行数

5.3.2 二维数组数组名

查看二维数组所占内存空间获取二维数组首地址

示例:

int main() { //二维数组数组名 int arr[2][3] = { {1,2,3}, {4,5,6} }; cout "张三","李四","王五" }; for (int i = 0; i sum += scores[i][j]; } cout int sum = num1 + num2; return sum; }

6.3 函数的调用

功能:使用定义好的函数

语法:函数名(参数)

示例:

//函数定义 int add(int num1, int num2) //定义中的num1,num2称为形式参数,简称形参 { int sum = num1 + num2; return sum; } int main() { int a = 10; int b = 10; //调用add函数 int sum = add(a, b);//调用时的a,b称为实际参数,简称实参 cout int a = 10; int b = 20; swap(a, b); cout cout cout int a = 100; int b = 200; cout int a = 100; int b = 200; swap(a, b); system("pause"); return 0; }

七、指针

7.1 指针的基本概念

指针的作用:*可以通过指针间接访问内存

内存编号是从0开始记录的,一般用十六进制数字表示

可以利用指针变量保存地址

7.2 指针变量的定义和使用

指针变量定义语法: 数据类型 * 变量名;

示例:

int main() { //1、指针的定义 int a = 10; //定义整型变量a //指针定义语法: 数据类型 * 变量名 ; int * p; //指针变量赋值 p = &a; //指针指向变量a的地址 cout //指针变量p指向内存地址编号为0的空间 int * p = NULL; //访问空指针报错 //内存编号0 ~255为系统占用内存,不允许用户访问 cout int a = 10; int b = 10; //const修饰的是指针,指针指向可以改,指针指向的值不可以更改(常量指针) const int * p1 = &a; p1 = &b; //正确 //*p1 = 100; 报错 //const修饰的是常量,指针指向不可以改,指针指向的值可以更改(指针常量) int * const p2 = &a; //p2 = &b; //错误 *p2 = 100; //正确 //const既修饰指针又修饰常量 const int * const p3 = &a; //p3 = &b; //错误 //*p3 = 100; //错误 system("pause"); return 0; }

技巧:看const右侧紧跟着的是指针还是常量, 是指针就是常量指针,是常量就是指针常量

7.6 指针和数组

作用:利用指针访问数组中元素

示例

int main() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int * p = arr; //指向数组的指针 cout int temp = a; a = b; b = temp; } //地址传递 void swap2(int * p1, int *p2) { int temp = *p1; *p1 = *p2; *p2 = temp; } int main() { int a = 10; int b = 20; swap1(a, b); // 值传递不会改变实参 swap2(&a, &b); //地址传递会改变实参 cout for (int j = 0; j int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } //打印数组函数 void printArray(int arr[], int len) { for (int i = 0; i int arr[10] = { 4,3,6,9,1,2,10,8,7,5 }; int len = sizeof(arr) / sizeof(int); bubbleSort(arr, len); printArray(arr, len); system("pause"); return 0; }

总结:当数组名传入到函数作为参数时,被退化为指向首元素的指针


八、结构体

8.1 结构体基本概念

结构体属于用户自定义的数据类型,允许用户存储不同的数据类型

8.2 结构体定义和使用

语法:struct 结构体名 { 结构体成员列表 };

通过结构体创建变量的方式有三种:

struct 结构体名 变量名struct 结构体名 变量名 = { 成员1值 , 成员2值…}定义结构体时顺便创建变量

示例

//结构体定义 struct student { //成员列表 string name; //姓名 int age; //年龄 int score; //分数 }stu3; //结构体变量创建方式3 int main() { //结构体变量创建方式1 struct student stu1; //struct 关键字可以省略 stu1.name = "张三"; stu1.age = 18; stu1.score = 100; cout //成员列表 string name; //姓名 int age; //年龄 int score; //分数 } int main() { //结构体数组 struct student arr[3]= { {"张三",18,80 }, {"李四",19,60 }, {"王五",20,70 } }; for (int i = 0; i //成员列表 string name; //姓名 int age; //年龄 int score; //分数 }; int main() { struct student stu = { "张三",18,100, }; struct student * p = &stu; p->score = 80; //指针通过 -> 操作符可以访问成员 cout //成员列表 int id; //职工编号 string name; //教师姓名 int age; //教师年龄 struct student stu; //子结构体 学生 }; int main() { struct teacher t1; t1.id = 10000; t1.name = "老王"; t1.age = 40; t1.stu.name = "张三"; t1.stu.age = 18; t1.stu.score = 100; cout stu.age = 28; cout student stu = { "张三",18,100}; //值传递 printStudent(stu); cout //stu->age = 100; //操作失败,因为加了const修饰 cout string name; int score; }; struct Teacher { string name; Student sArray[5]; }; void allocateSpace(Teacher tArray[] , int len) { string tName = "教师"; string sName = "学生"; string nameSeed = "ABCDE"; for (int i = 0; i tArray[i].sArray[j].name = sName + nameSeed[j]; tArray[i].sArray[j].score = rand() % 61 + 40; } } } void printTeachers(Teacher tArray[], int len) { for (int i = 0; i cout "刘备",23,"男"}, {"关羽",22,"男"}, {"张飞",20,"男"}, {"赵云",21,"男"}, {"貂蝉",19,"女"},

示例:

//英雄结构体 struct hero { string name; int age; string sex; }; //冒泡排序 void bubbleSort(hero arr[] , int len) { for (int i = 0; i if (arr[j].age > arr[j + 1].age) { hero temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } //打印数组 void printHeros(hero arr[], int len) { for (int i = 0; i struct hero arr[5] = { {"刘备",23,"男"}, {"关羽",22,"男"}, {"张飞",20,"男"}, {"赵云",21,"男"}, {"貂蝉",19,"女"}, }; int len = sizeof(arr) / sizeof(hero); //获取数组元素个数 bubbleSort(arr, len); //排序 printHeros(arr, len); //打印 system("pause"); return 0; }

更多有关于Linux C++后台开发的学习分享,感兴趣的朋友们可以关注我的个人公众号

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜