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

编写一个C++程序总共分为4个步骤
创建项目创建文件编写代码运行程序 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开

右键源文件,选择添加->新建项
给C++文件起个名称,然后点击添加即可。
ASCII 码大致由以下两部分组成:
ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。作用:用于表示一些不能显示出来的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; }总结:在定义二维数组时,如果初始化了数据,可以省略行数
示例:
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; }功能:使用定义好的函数
语法:函数名(参数)
示例:
//函数定义 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; }指针的作用:*可以通过指针间接访问内存
内存编号是从0开始记录的,一般用十六进制数字表示
可以利用指针变量保存地址
指针变量定义语法: 数据类型 * 变量名;
示例:
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右侧紧跟着的是指针还是常量, 是指针就是常量指针,是常量就是指针常量
作用:利用指针访问数组中元素
示例:
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; }总结:当数组名传入到函数作为参数时,被退化为指向首元素的指针
结构体属于用户自定义的数据类型,允许用户存储不同的数据类型
语法: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++后台开发的学习分享,感兴趣的朋友们可以关注我的个人公众号
上一篇:100本最棒的web前端图书推荐
下一篇:C语言:基本语法汇总
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务