900行代码带你C++从0到1

tech2023-10-14  95

C++入门(学习顺序): 1、如何创建一个C++程序 2、注释、变量、常量、关键字概念学习 3、数据类型:整型、浮点型、bool、char等 4、运算符:算术、赋值、比较、逻辑 5、程序流程结构:顺序、选择、循环 6、数组:一维、二维 7、函数:值传递、地址传递、函数声明、定义、分文件编写调用 8、指针、常量指针、指针常量 9、结构体 10、指针、结构体、数组、函数等综合编写程序

//C++学习路上程序集合 //第一个C++程序:Hello World //#include<iostream> //using namespace std; // //int main() //{ // cout << "Hello World!" << endl; // system("pause"); // return 0; //} //注释:在代码中加一些说明和解释,方便自己和其他程序员阅读代码 //变量:给一段指定的内存空间起名,方便操作这一段内存 //新建一个变量并显示 //#include<iostream> //using namespace std; // //int main() //{ // int a = 10; // cout << "a = " << a << endl; // system("pause"); // return 0; //} //C++创建变量时必须给一个变量一个初始值,否则会报错; //常量:用于记录程序中不可更改的数据 //#include<iostream> //using namespace std; //#define day 7 //int main() //{ // cout << "一周有: " << day << "天" << endl; // // const int mouth = 12; // cout << "一年有:" << mouth << "月" << endl; // system("pause"); // return 0; //} //关键字:C++预先保留的单词,标识符 //auto,bool,break,case,catch,char,class,const,const_cast,continue //default,delete,double,int,float,long,..... //标识符命名规则: //1、标识符不能是关键字 //2、标识符只能由字母,数字,下划线组成 //3、第一个字符不能是数字 //4、标识符字母区分大小写 //C++规定在创建变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配类型。 //#include<iostream> //using namespace std; // //int main() //{ // cout << "short类型所占内存空间为: " << sizeof(short) << endl; // cout << "int类型所占内存空间为: " << sizeof(int) << endl; // cout << "long类型所占内存空间为:" << sizeof(long) << endl; // cout << "long long类型所占内存空间为:" << sizeof(long long) << endl; // system("pause"); // return 0; //} //#include<iostream> //using namespace std; // //int main() //{ // float f1 = 3.14f; // double d1 = 3.14; // cout << f1 << endl; // cout << d1 << endl; // cout << "float sizeof" << sizeof(float) << endl; // cout << "double sizeof" << sizeof(double) << endl; // float f2 = 3e2; // cout << f2 << endl; // float f3 = 3e-2; // cout << f3 << endl; // system("pause"); // return 0; //} //#include<iostream> //using namespace std; // //int main() //{ // char ch = 'a'; // cout << ch << endl; // cout << sizeof(ch) << endl; // // cout << (int)ch << endl; // ch = 98; // cout << ch << endl; // system("pause"); // return 0; //} //A:65,a:97 //#include<iostream> //using namespace std; // //int main() //{ // cout << "/" << endl; // system("pause"); // return 0; //} //#include<iostream> //using namespace std; // //int main() //{ // char str1[] = "hello world"; // cout << str1 << endl; // system("pause"); // return 0; //} //#include<iostream> //using namespace std; //#include<string> //int main() //{ // string str = "hello world"; // cout << str << endl; // system("pause"); // return 0; //} //#include<iostream> //using namespace std; // //int main() //{ // bool flag = true; // cout << flag << endl; // flag = false; // cout << flag << endl; // cout << sizeof(bool); // system("pause"); // return 0; //} //#include<iostream> //using namespace std; //#include<string> //int main() //{ // int a = 0; // cin >> a; // cout << a << endl; // // float b = 0; // cin >> b; // cout << b << endl; // char ch = 0; // cin >> ch; // cout << ch << endl; // string str; // cin >> str; // cout << str << endl; // bool flag = true; // cin >> flag; // cout << flag << endl; // system("pause"); // return EXIT_SUCCESS; //} //算术运算符:用于处理四则运算 //赋值运算符:用于将表达式的值付给变量 //比较运算符:用于表达式的的比较,并返回一个真值或假值 //逻辑运算符:根据表达式的值返回真值或者假值 //#include<iostream> //using namespace std; // 加减乘除 //int main() { // // int a1 = 10; // int b1 = 3; // // cout << a1 + b1 << endl; // cout << a1 - b1 << endl; // cout << a1 * b1 << endl; // cout << a1 / b1 << endl; //两个整数相除结果依然是整数 // // int a2 = 10; // int b2 = 20; // cout << a2 / b2 << endl; // // int a3 = 10; // int b3 = 0; // //cout << a3 / b3 << endl; //报错,除数不可以为0 // // // //两个小数可以相除 // double d1 = 0.5; // double d2 = 0.25; // cout << d1 / d2 << endl; // // system("pause"); // // return 0; //} //#include<iostream> //using namespace std; // //int main() //{ // int a = 10; // int b = a++; // int c = ++a; // cout << a << b << c << endl; // system("pause"); // return 0; //} //#include<iostream> //using namespace std; // //int main() //{ // int a = 10; // int b = 2; // b += a; // cout << b << endl << a << endl; // // system("pause"); // return 0; //} // //#include <iostream> //using namespace std; //int main() { // // int a = 10; // int b = 20; // // cout << (a == b) << endl; // 0 // // cout << (a != b) << endl; // 1 // // cout << (a > b) << endl; // 0 // // cout << (a < b) << endl; // 1 // // cout << (a >= b) << endl; // 0 // // cout << (a <= b) << endl; // 1 // // system("pause"); // // return 0; //} //#include <iostream> //using namespace std; 逻辑运算符 --- 非 //int main() { // // int a = 10; // // cout << !a << endl; // 0 // // cout << !!a << endl; // 1 // // system("pause"); // // return 0; //} //顺序结构,选择结构,循环结构 //#include<iostream> //using namespace std; // //int main() //{ // int score = 0; // cin >> score; // cout << score << endl; // if (score > 600) // cout << "你考上了一本"; // else if (score > 500) // cout << "你考上了二本"; // else // cout << "啥都没考上"; // cout << endl; // system("pause"); // return 0; //} //#include <iostream> //using namespace std; //int main() //{ // int a = 10; // int b = 20; // int c = 0; // // c = a > b ? a : b; // cout << c << endl; // system("pause"); // return 0; //} //#include <iostream> //using namespace std; //int main() //{ // cout << "请给电影打分数" << endl; // int score = 0; // cin >> score; // switch (score) // { // case 10: // cout << "电影不错" << endl; // break; // case 9: // cout << "电影一般" << endl; // break; // default: // cout << "电影很差劲" << endl; // break; // } // system("pause"); // return 0; //} //#include <iostream> //using namespace std; //int main() //{ // int num = 0; // while (num < 10) // { // cout << num << endl; // num++; // } // system("pause"); // return 0; //} //#include <iostream> //using namespace std; //int main() //{ // int num = 0; // do // { // cout << num << endl; // num++; // } while (num < 10); // system("pause"); // return 0; //} //#include <iostream> //using namespace std; //int main() { // // for (int i = 0; i < 10; i++) // { // cout << i << endl; // } // // system("pause"); // // return 0; //} //#include <iostream> //using namespace std; //int main() //{ // for(int i = 0; i < 10; i++) // { // for(int j = 0; j < 10; j++) // { // cout << "*"; // } // cout << endl; // } // system("pause"); // return 0; //} //break:跳出选择结构或循环结构 //#include <iostream> //using namespace std; //int main() { // //2、在循环语句中用break // for (int i = 0; i < 10; i++) // { // if (i == 5) // { // break; //跳出循环语句 // } // cout << i << endl; // } // // system("pause"); // // return 0; //} //#include <iostream> //using namespace std; //int main() { // // cout << "1" << endl; // // goto FLAG; // // cout << "2" << endl; // cout << "3" << endl; // cout << "4" << endl; // //FLAG: // // cout << "5" << endl; // // system("pause"); // // return 0; //} //数组:就是一个集合,里面存放了相同类型的数据元素 //数据中的每个数据元素都是相同的数据类型 //数组是由连续的内存位置组成的 //#include<iostream> //using namespace std; // //int main() { // int a[5]; // a[0] = 1; // a[2] = 2; // a[1] = 3; // a[3] = 4; // a[4] = 5; // cout << a[4] << endl; // int b[5] = { 1,2,3,4,5 }; // cout << b[4] << endl; // int c[] = { 2,3,4,5,6 }; // cout << c[4] << endl; // system("pause"); // return 0; //} //#include<iostream> //using namespace std; //int main() { // int arr[] = { 1,2,3,4,5 }; // cout << sizeof(arr) << endl; // cout << sizeof(arr[0]) << endl; // cout << sizeof(arr) / sizeof(arr[0]) << endl; // cout << (int)arr << endl; // cout << &arr[0] << endl; // cout << (int)&arr[0] << endl; // // system("pause"); // // return 0; //} //冒泡排序 //#include<iostream> //using namespace std; //int main() //{ // int arr[9] = { 4,2,8,0,5,7,1,3,9 }; // for (int i = 0; i < 9 - 1; i++) // { // for (int j = 0; j < 9 - 1 - i; j++) // { // if (arr[j] > arr[j + 1]) // { // int temp = arr[j]; // arr[j] = arr[j + 1]; // arr[j + 1] = temp; // } // } // } // for (int i = 0; i < 9; i++) // { // cout << arr[i] << endl; // } // system("pause"); // return 0; //} //二维数组 //#include<iostream> //using namespace std; //int main() //{ // 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 < 2; i++) // { // for (int j = 0; j < 3; j++) // { // cout << arr[i][j]; // } // cout << endl; // } // int brr[2][3] = // { // {1,2,34}, // {3,4,5} // }; // for (int i = 0; i < 2; i++) // { // for (int j = 0; j < 3; j++) // { // cout << brr[i][j]<<'\t'; // } // cout << endl; // } // int crr[2][3] = { 1,23,4,5,56,6 }; // for (int i = 0; i < 2; i++) // { // for (int j = 0; j < 3; j++) // { // cout << crr[i][j] << '\t'; // } // cout << endl; // } // int drr[][3] = { 1,2,342,3,43,5 }; // for (int i = 0; i < 2; i++) // { // for (int j = 0; j < 3; j++) // { // cout << drr[i][j] << '\t'; // } // cout << endl; // } // system("pause"); // return 0; //} //#include<iostream> //using namespace std; // //int main() { // // //二维数组数组名 // int arr[2][3] = // { // { 1,2,3 }, // { 4,5,6 } // }; // // cout << "二维数组大小: " << sizeof(arr) << endl; // cout << "二维数组一行大小: " << sizeof(arr[0]) << endl; // cout << "二维数组元素大小: " << sizeof(arr[0][0]) << endl; // // cout << "二维数组行数: " << sizeof(arr) / sizeof(arr[0]) << endl; // cout << "二维数组列数: " << sizeof(arr[0]) / sizeof(arr[0][0]) << endl; // // //地址 // cout << "二维数组首地址:" << arr << endl; // cout << "二维数组第一行地址:" << arr[0] << endl; // cout << "二维数组第二行地址:" << arr[1] << endl; // // cout << "二维数组第一个元素地址:" << &arr[0][0] << endl; // cout << "二维数组第二个元素地址:" << &arr[0][1] << endl; // // system("pause"); // // return 0; //} //函数:将一段经常使用的代码封装起来,减少代码的重复性 //返回值类型 函数名 (参数列表) //{ // 函数体 // return表达式 //} //#include<iostream> //using namespace std; //int add(int, int); //int main() //{ // int a = 10; // int b = 10; // int c = add(a, b); // cout << c << endl; // system("pause"); // return 0; //} //int add(int a, int b) //{ // return a + b; //} //函数定义里小括号内是形参,函数调用传入的参数是实参 //#include<iostream> //using namespace std; 函数常见样式 1、 无参无返 //void test01() //{ // //void a = 10; //无类型不可以创建变量,原因无法分配内存 // cout << "this is test01" << endl; // //test01(); 函数调用 //} // 2、 有参无返 //void test02(int a) //{ // cout << "this is test02" << endl; // cout << "a = " << a << endl; //} // 3、无参有返 //int test03() //{ // cout << "this is test03 " << endl; // return 10; //} // 4、有参有返 //int test04(int a, int b) //{ // cout << "this is test04 " << endl; // int sum = a + b; // return sum; //} //int main() //{ // test01(); // system("pause"); // return 0; //} //#include"swap.h" //int main() //{ // int a = 200; // int b = 100; // swap(a, b); // // system("pause"); // return 0; //} //通过指针间接的访问内存 //#include<iostream> //using namespace std; // //int main() { // int a = 10; // int * p; // p = &a; // cout << (int)&a << endl; // cout << (int)p << endl; // cout << a << endl; // cout << *p << endl; // system("pause"); // return 0; //} //普通变量存放的是数据,指针变量存放的是地址 //指针变量可以通过“*”操作符来操作指针变量指向的内存空间的数据,这个过程叫解引用。 //所有指针类型在32位操作系统下是4个字节 //空指针:指针变量指向内存中编号为零的空间 //初始化指针变量 //空指针指向的内存是不可以访问的 //#include<iostream> //using namespace std; //int main() { // int * p = NULL; // cout << *p << endl; // system("pause"); // return 0; // //} 指针指向非法的内存空间 //#include<iostream> //using namespace std; //int main() { // int *p = (int *)0x1100; // // cout << *p << endl; // system("pause"); // return 0; //} //#include<iostream> //using namespace std; // //int main() //{ // int a = 10; // int b = 20; // const int * p1 = &a;//指针常量 // p1 = &b; // // int * const p2 = &a;//常量指针 // * p2 = a; // // const int * const p3 = &a; // //p3 = &b; //错误 // //*p3 = 100; //错误 // // system("pause"); // // return 0; // //} //#include<iostream> //using namespace std; // //int main() { // int arr[] = { 1,2,3,4,5 }; // int * p = arr; // cout << *p << endl; // // for (int i = 0; i < 5; i++) // { // //利用指针遍历数组 // cout << *p << endl; // p++; // } // // system("pause"); // return 0; //} //#include"bubbleSort.h" //#include"printArray.h" //int main() { // // 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; //} //结构体 //用户自定义的数据类型,允许用户存储不同 的数据类型 //#include<iostream> //using namespace std; //#include<string> // //struct student //{ // string name; // int age; //}stu3; // //int main() { // student stu1; // stu1.name = "大笨蛋"; // stu1.age = 12; // cout << stu1.name << "的年龄是:" << stu1.age << endl; // // student stu2 = { "大混蛋",14 }; // cout << stu2.name << "的年龄是:" << stu2.age << endl; // // stu3.name = "色鬼哦"; // stu3.age = 34; // cout << stu3.name << "的年龄是:" << stu3.age << endl; // system("pause"); // return 0; //} // //#include<iostream> //using namespace std; //#include<string> 结构体定义 //struct student //{ // //成员列表 // string name; //姓名 // int age; //年龄 // int score; //分数 //}; // //int main() { // // //结构体数组 // struct student arr[3] = // { // { "张三",18,80 }, // { "李四",19,60 }, // { "王五",20,70 } // }; // // for (int i = 0; i < 3; i++) // { // cout << "姓名:" << arr[i].name << " 年龄:" << arr[i].age << " 分数:" << arr[i].score << endl; // } // // system("pause"); // // return 0; //} //通过指针访问结构体成员 //#include<iostream> //using namespace std; //#include<string> // 结构体定义 //struct student //{ // //成员列表 // string name; //姓名 // int age; //年龄 // int score; //分数 //}; // // //int main() { // // struct student stu = { "张三",18,100, }; // // struct student * p = &stu; // // p->score = 80; //指针通过 -> 操作符可以访问成员 // // cout << "姓名:" << p->name << " 年龄:" << p->age << " 分数:" << p->score << endl; // // system("pause"); // // return 0; //} //#include<iostream> //using namespace std; //#include<string> // 学生结构体定义 //struct student //{ // //成员列表 // string name; //姓名 // int age; //年龄 // int score; //分数 //}; // 教师结构体定义 //struct teacher //{ // //成员列表 // 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 << "教师 职工编号: " << t1.id << " 姓名: " << t1.name << " 年龄: " << t1.age << endl; // // cout << "辅导学员 姓名: " << t1.stu.name << " 年龄:" << t1.stu.age << " 考试分数: " << t1.stu.score << endl; // // system("pause"); // // return 0; //}
最新回复(0)