网站建设需要的框架结构,金坛网站建设哪家好,自助广告位网站源码,链网1.结构体基本概念结构体属于用户自定义的数据类型#xff0c;允许用户存储不同的数据类型2.结构体定义和使用语法: struct 结构体 { 结构体成员列表 };通过结构体创建变量的方式有三种:struct 结构体名 变量名struct 结构体名 变量名 { 成员1值#xff0c;成员2值...}定义结构…1.结构体基本概念结构体属于用户自定义的数据类型允许用户存储不同的数据类型2.结构体定义和使用语法: struct 结构体 { 结构体成员列表 };通过结构体创建变量的方式有三种:struct 结构体名 变量名struct 结构体名 变量名 { 成员1值成员2值...}定义结构体时顺便创建变量struct Student {//姓名string name;int age;string address;}stul;stul.name  11111;cout  stul.name endl;struct Student stu2;stu2.name  222222;cout  stu2.name  endl;3.结构体数组作用: 将自定义的结构体放入到数组中方便维护语法: struct 结构体名 数组名[ 元素个数 ]  { {} , {} , {} ,{} }//创建结构体数组struct Student stuArray[3]  {{login,45,ggg},{res,35,yyy},{ooo,45,ppp},};//遍历结构体数组for (int i  0;i  3;i) {cout  姓名  stuArray[i].name   年龄:  stuArray[i].age  endl;}4.结构体指针作用: 通过指针访问结构体中的成员利用操作符 - 可以通过 结构体指针 访问 结构体属性//1.创建学生结构体变量struct Student s  {df,3, fd};//2.通过指针指向结构体变量Student *p  s;//3.通过指针访问结构体变量中的数据cout  姓名   p-name  endl;5.结构体中const使用场景作用: 用const来防止误操作//将函数中的形参改为指针可以减少内存空间而且不会复制新的副本出来void printStudents(const Student *s) {//s-name  gg;//加入const之后一旦有修改的操作就会报错可以防止我们的误操作cout  姓名   s-name  endl;}6.内存分区模型C程序在执行时将内存大方向划分为4个区域·代码区: 存放函数体的二进制代码由操作系统进行管理的·全局区: 存放全局变量和静态变量以及常量·栈区:由编译器自动分配释放,存放函数的参数值,局部变量等·堆区: 由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据赋予不同的生命周期,给我们更大的灵活编程程序运行前在程序编译后生成了exe可执行程序,未执行该程序前分为两个区域代码区: 存放CPU执行的机器指令 代码区是共享的共享的目的是对于频繁被执行的程序只需要在内存中有一份代码即可 代码区是只读的使其只读的原因是防止程序意外地修改了它的指令全局区: 全局变量和静态变量存放在此. 全局区还包含了常量区,字符串常量和其他常量也存放在此. 该区域的数据在程序结束后由操作系统释放栈区:由编译器自动分配释放,存放函爱的参数值,局部变量等注意事项: 不要返回局部变量的地址,栈区开辟的数据由编译器自动释放.局部变量存放在栈区栈区的数据在函数执行完后自动释放.堆区:融程序员分配释放,若程序员不释放,程序结束时由操作系统回收在C中主要利用new在堆区开辟内存7.New操作符C中利用new操作符在堆区开辟数据堆区开辟的数据由程序员手动开辟,手动释放释放利用操作符delete语法: new 数据类型利用new创建的数据会返回该数据对应的类型的指针//创建10整型数据的数组在堆区int *arr  new int[10];for (int i  0;i  10;i) {arr[i]  i  22;//赋值cout  arr[i]  endl;}//释放堆区的数组//释放数组的时候要加[]才可以delete[] arr;8.引用对变量起别名本质: 引用的本质在c内部实现是一个指针常量.引用基本语法  数据类型 别名  原名int a  10;int b  a;引用注意事项·引用必须初始化·引用在初始化后不可以改变int b;//错误int c5;int a6;int ba; bc; //赋值操作而不是更改引用引用做函数参数作用: 函数传参时可以利用引用的技术让形参修饰实参优点: 可以简化指针修改实参//引用传递void Swap03(int a, int b) {int temp  a;a  b;b  temp;}//指针传递void swap(int *a, int*b) {int temp  *a;*a  *b;*b  temp;}引用做函数返回值作用: 引用是可以作为函数的返回值存在的注意: 不要返回局部变量引用int tt1() {int a  7;//局部变量 存放在四区中的 栈区return a;}int he  tt1();cout  he   he  endl;//第一次结果正确是因为编译器做了保留cout  he   he  endl;//第二次结果错误因为a的内存已经释放用法: 函数调用作为左值int tt2() {static int a  7; // 静态变量存放在全局区全局区上的数据在程序结束后系统释放return a;}int he2  tt2();cout  he2   he2  endl;cout  he2   he2  endl;tt2()  999;;//如果函数的返回值是引用这个函数调用可以作为左值cout  he2   he2  endl;cout  he2   he2  endl;常量引用作用: 常量引用主要用来修饰形参,防止误操作在函数形参列表中可以加const修饰形参防止形参改变实参//打印void showValue(const int val) {//val  999;//错误cout  val  val  endl;}//加上const之后编译器将代码修改 int temp  10; const int  ref  temp; const int  ref10;//引用必须引一块合法的内存空间// ref  11; // 加入const之后变为只读不可以修改 | int a  12; showValue(a);