栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

C++基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++基础

C++ 变量:     变量存在的意义:方便我们管理内存     变量创建的语法:数据类型    变量名   =    变量初始值;                                     int            a        =      20; 常量     作用:用于记录程序中不可更改的数据 C++定义常量两种方式     1.#define宏常量:         #define常量名常量值         通常在文件上方定义,表示一个常量     2.const修饰的变量:         const  数据类型   常量名 = 常量值         通常在变量定义前加关键字const,修饰该变量为常量,不可修改 字符串类型 作用:用于表示一串字符两种风格     1.C风格字符串: char 变量名[] = "字符串值” 注意:C风格的字符串要用双引号括起来     2.C++风格字符串:string 变量名[]  =  "字符串值” 布尔类型bool(只要是非0的值都代表真)     作用:布尔数据类型代表真或假的值     bool类型只有两个值:         true ---真(本质是1)false ---假(本质是0)         bool类型占1个字节大小 数据的输入     作用:用于从键盘获取数据     关键字:cin     语法:cin >>变量 int a = 0; cout<<"请给整型变量a赋值:" << end1; cin >> a; cout <<"整型变量a = " << a << endl; float f = 3.14f; cout <<"请给浮点型变量f赋值:"> f ; cout <<"浮点型变量f ="<< f > str; cout <<"字符串str = " << str << endl; 三目运算符     作用:通过三目运算符实现简单的判断 语法:     表达式2:表达式3 解释:     如果表达式1的值为真,执行表达式2,并返回表达式2的结果;     如果表达式1的值为假,执行表达式3,并返回表达式3的结果。 C++中三木运算符返回的是一个变量,还可以继续赋值 int main() { int a = 10; int b = 20; int c = 0; c = (a > b ? a : b);    //最终结果会返回给c cout << "c = " << c << endl; //C++中三目运算符返回的是变量,可以继续赋值 (a > b ? a : b) = 100; cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl; system( "pause"); return e; c = 20 a = 10 b = 100 c = 20 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域     代码区: 存放函数体的二进制代码,由操作系统进行管理的     全局区: 存放全局变量和静态变量以及常量     栈区:由编译器自动分配释放,存放函数的参数值,局部变量等     堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存四区的意义:     不同区域存放的数据,赋予不同的生命周期,灵活编程 程序运行前     在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域      代码区: 存放CPU执行的机器指令                  代码区是 共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可                  代码区是 只读的,使其只读的原因是防止程序意外地修改了它的指令      全局区: 全局变量和静态变量存放在此.                  全局区还包含了常量区,字符串常量和其他常量也存放在此.      该区域的数据在程序结束后由操作系统释放. 程序运行后      栈区: 由编译器自动分配释放,存放函数的参数值,局部变量等      注意事项:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放           堆区: 由程序员分配释放,若程序员不释放,程序结束时由操作系统回收      在C++中主要利用new在堆区开辟内存 new操作符     C++中利用new操作符在 堆区开辟数据     堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete     语法:new数据类型     利用new创建的数据,会返回该数据对应的类型的指针 #include using namespace std; int * func(){     int *p = new int(10);     return p; } void test01(){    //堆区的数据,由程序员管理开辟,程序员管理释放     int *p = func();     cout << *p << endl;     cout << *p << endl;     cout << *p << endl;  // delete p;     //释放堆区的数据 } void test02(){    //在堆区创建10整形数据的数组     int *arr = new int[10];     for(int i = 0;i < 10;i++){         arr[i] = i;     }         for(int i = 0;i < 10;i++){         cout << arr[i] << endl;     }     delete[] arr;    //释放数组时要加[]才行 } int main(){     test01();     test02();     system("pause");     return 0; } 结果: 10 10 10 加上delete之后堆区的数据被释放,就无法正常访问 1 2 3 ... 10 引用 引用的基本使用      作用:给变量起别名     语法:数据类型  &别名  =  原名 int main(){     int a = 10;     int &b = a;    //创建引用     cout << "a = " << a << endl;     cout<<"b = " << b << endl;     b = 100;     cout << "a = " << a << endl;     cout<< "b = " << b << endl;     system( ""pause");     return 0; } 结果: 10 10 100 100 引用注意事项:     1、引用必须初始化     2、引用在初始化后,不可以改变 int main(){     int a = 10;     //1、引用必须初始化     int &b;         // 错误,必须要初始化int &b = a;     int c = 20;     //2、引用在初始化后,不可以改变     b = c;          //赋值操作,而不是更改引用     cout << "a =  " << a <     int temp = a;     a = b;     b = temp; } int main(){     int a = 10;     int b = 20;     mySwap01(a,b);    //值传递,形参不会修饰实参     cout << "a = " << a < using namespace std; //引用做函数的返回值 //1、不要返回局部变量的引用 int test01(){     int a = 10;    //局部变量存放在四区中的 栈区         return a; } int &test02(){     static int a = 10;    //静态变量,存放在全局区,全局区上的数据程序结束后系统释放     return a; } int main(){     int &ref = test01();     cout << "ref = " << ref <     ref = 100;     //ref是引用,转换为*ref = 100 } int main(){     int a = 10; //自动转换为 int* const ref = &a;指针常量是指针指向不可改,也说明为什么引用不可更改     int &ref = a;     ref = 20;    //内部发现ref是引用,自动帮我们转换为:*ref = 20;     cout << "a:" << a < endl;     cout << "ref:" << ref << endl;     func(a);     return 0; } 结果 a:20 ref:20 结论:C++推荐用引用技术,因为语法方便,引用本质是指针常戳,但是所有的指针操作编译器都帮我们做了 常量引用     作用:常量引用主要用来修饰形参,防止误操作      在函数形参列表中,可以加const修饰形参,防止形参改变实参 #include usring namespace std //打印数据 void showValue(const int &value){    //用引用的方式传递  第二步:   value = 1000;     cout << "value = " << value <     //常量引用     //使用场景:用来修饰形参,放置误操作     //int a = 10;    //引用本身需要一个合法的内存空间,因此这行错误          //const int &ref = 10;    //加上const之后,编译器将代码修改:int temp = 10;const int & ref = temp;          //const int &ref = 10;    //引用必须引一块合法的内存空间     //ref = 20;    //加入const之后变为只读,不可修改其值     int a = 100;     showValue(a);     cout << "a = " << a <
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1040441.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号