C++学习

本文详细讨论了C++编程中的数据类型选择,如精度优先级和类型转换规则。提到了内存分配与释放(new/delete),字符串处理函数,以及结构体和数组的使用。还涵盖了引用、函数多态、模板和内联函数的概念,强调了在处理数组和类时的注意事项。
摘要由CSDN通过智能技术生成

偏向精度高的,有符号偏向无符号,前提是哪个精度高偏向哪个

33L 用long类型存储整形常量     long与int:标准只规定long不小于int的长度,int不小于short的长度。

字符串以\0结尾,char[3]={'a','b','\0'};   不以\0结尾是字符数组  计算时要算上空字符

cin   get  遇到空格\0就认为结束

strlen计算字符数量,sizeof计算内存大小

cin.getline(m,5)   将5个字符放到m中

同一类型的不同名称的结构体可以相互赋值         结构体变量赋值要加等号

结构数组,是一个数组,每个成员是结构体,例如:ycc[0].name

枚举是整形,可以转换为int类型,int类型不能转换为枚举类型,需要通过强制类型转换   int类型级别要高于枚举类型

new开辟内存空间   int *pt = new int;  开辟int内存空间  int *pt = new int [10]  返回的是第一个元素地址   new sizeof(xxxxx)       delete []  num;删除数组 

delete释放内存        delete pt; 不会删除指针,只会删除内存

double *pt= new double [3];    pt[0]   pt[1]  pt[2]   数组指针

double的指针+1跨过两个int类型    num[10]    &num取的是整个数组的地址

char *pt = "abc"    pt指针指向abc字符串

字符串赋给一个——strncpy{xxx,"xxxxxxxx",n}   传N个字符到xxx中    ps->name   ==  (*ps).nme     结构体指针

strcat(xxxx1,xxxx2);  将后面追加到前面

命名空间namespace  类似全局的库,全局作用域下,都可以调用这个里面    std::xxx    

vector<int>a(x)       array<int,4>num    数组定义   可以使用赋值把两个数组内容交换

结构体数组   是个数组,每个元素都是结构体         

内联函数  直接定义的时候加inline  

省去了保存调度的空间时间,运算更快更节约资源

------------------------------------------------------------------------

引用  int &num = abc;    &是个标识符  表示引用  引用永远效忠自己对应的那个

使用const定义形参

string 定义一个字符串

结构体引用 

struct  xxxx      xxxx abc       (xxxx  &ft)      ft代表abc     

基类和派生类   

基类引用可以引用派生  ostream &os   定义一个基类引用

传递数组用指针,传递类用引用,传递结构体指针和类都可以

for(i = 0 ; i < n && str[i] ; i++)      i<n 和 str[i]  都为真

左右值

int a = 10;   对a能取地址,它就是左值   对10不能取地址,它就是右值

传统引用   int &a = c;  赋值的要是一个能取地址的    不然就是常引用   const int &a = 10; 

 const int &b = (a+b)

函数多态 = 函数重载 

函数名相同只是参数列表不一样    int cnus() 和 double cnus  两个类型不一样,不能重载

函数模板  重载模板

都要加template<typename T>           void swap(T &a)     void swap(T arr[])         class和typename互换

结构体:显示具体化  template<>void swap<job>(job &a1,job &a2)   结构体    <job>为了表示原始的表示不了job类型

优先非模板,然后显示具体化,然后常规模板     非模板->void swap(int &a,int &b)

template <>  void 具体化     template  void   模板实例化

decltype  强制类型转换    int x;   decltype (x) m      m就是int    decltype((x)) m   int类型的引用 

默认值必须从右往左  void song(int x, int b,int c)    从c开始赋值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值