c++ 结构体转为string_<C++程序设计>内存,结构体,内联函数,String相关操作

八进制 前缀0 ,020在计算机中是表示16的整数

浮点型1.0占8个字节

字符串占的字节数 = 字符串长度+1

“程序设计”长度为8(4个汉字占8个字节),占9个字节

^ 按位异或,不同为1相同为0

同名变量,局部变量的优先级要高于全局变量,如果想使用全局变量而不是局部变量,应在变量名之前加上作用域符号"::"

面向对象:采用对象来描述内部属性和操作方法,将数据和函数当做一个整体

继承:在...的基础上,又有什么样的新特征

destructor往往用于释放constructor中动态申请的内存空间

异或^,两个操作数不同为1,相同为0,将int型变量n的低8位取反,其余位保持不变 n^=0xFF

对于有符号数,如long,char,int,short,char型变量 右移时符号位(最高位)将一起移动,正数的符号位为0,负数的符号位为1,如果原符号位为0,右移时高位就补充0,原符号位为1右移时高位就补充1

实际上,右移n位,就相当于左操作数除以2的n次方,并且结果往小的取整(这是规律,不是规定)

转义字符

\n 换行符 \r 表示回车 \b 退格 \t制表符 ' 单引号 ''双引号 \0结束符 \f 分页符

C++程序运行时使用的内存区域

堆区 存放动态分配的数据

栈区 存放局部数据,局部变量

全局数据区 存放全局数据和静态数据,全局变量

程序代码区 存放程序各个函数的代码

存储类型 auto,register,static,extern 一个变量完整的形式

auto:在定义块的开始分配空间,执行结束时释放空间

register:尽可能存放在CPU的寄存器中,提高程序的效率,仅局部变量和形式参数,才可作为寄存器变量

extern:如果在一个源文件a.cpp中定义的全局变量,想在b.cpp中使用,则应该在b.cpp中加上extern进行声明,表示该全局变量不在b.cpp中定义的

a.cpp

int Dimension = 100;

b.cpp

extern int Dimension;

如果在全局变量前加上static,则成为静态成员变量,只能在本文件中使用

函数的自动变量(auto)是在函数执行中才分配,static变量是在编译时才分配的内存

结构体

结构体类型 *指针变量名;

(*指针变量).变量名

指针变量->变量名

结构体只有数据成员,没有函数成员

内联函数

内联函数:在类体内直接定义函数成员,该成员函数成为内联函数

内联成员函数 : inline + 成员函数,整个函数体出现在类定义的内部

//内联函数形如:

class clock{

void show_time(){cout<

}

inline int square(int x){

return x*x;

}

//编译时遇到内联函数调用square(i),就用函数体中的代码代替square(i)

class clock{

void show_time(){cout<

}

String的相关操作

char *strcat(char *destin,char * source) //链接两个字符

char *strcpy(char * destin,char *source) //将字符串source拷贝到destin中

String text =“heavy rains are pushing water”;

k = text.find("heavy"); //查找heavy的下标

text.earse(k,sizeof("heavy")-1); //删除heavy

text.insert(k,"strong");

String S1("Hello");//一个参数的构造函数

String month ="march"; //字串赋值

String S2(8,"X");//两个参数的构造函数

String类不提供以字符和整数为参数的构造函数

String error ='C';//错误,不存在以字符为参数的构造函数

可以将字符赋值给String

String s;

s ='n';

逐个访问String类对象的字符,String S1("Hello");

for(int i=0;i

cout<

成员函数at会做范围检查,如果超出范围会抛出out_of_range异常,而下标运算符不会做检查

//用+运算符连接字符串

String S1("GOOD"),S2("MORNING");

S1+=S2;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值