<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<<Hour:<<":"minute<<endl;}

}

inline int square(int x){

return x*x;

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

class clock{

void show_time(){cout<<Hour:<<":"minute<<endl;}

}

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<s1.length;i++)

cout<<s1.at(i)<<endl;

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

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

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

S1+=S2;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.面向对象的程序设计思想是什么? 答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.什么是类?...
    少帅yangjie阅读 5,112评论 0 14
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,525评论 30 472
  • const 引用 const 引用是指向 const 对象的引用:const int ival = 1024;co...
    rogerwu1228阅读 729评论 0 1
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 7,875评论 0 10
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,623评论 1 51

友情链接更多精彩内容