ITPub博客

首页 > 应用开发 > C/C++ > 我的随行笔记2 C++ Primer Plus

我的随行笔记2 C++ Primer Plus

C/C++ 作者:qwer1030274531 时间:2020-08-26 14:25:34 0 删除 编辑

  1.声明数组: short months[12]; 访问其元素:month[0]~month[11]

  2.初始化数组:(1)int yam[3]={20, 3, 5}; // 列表初始化可省略等号,也可{}不包含数据,元素均初始化为0

  (2)int xam[3]; xam[0]=20; xam[1]=3; xam[2]=5;

  xam[3]={20,3,5};//错,不允许 xam=yam; //错,不允许将一个数组赋给另一个数组

  long ph[]={25, 92, 3.0}; //错,列表初始化禁止缩窄转化,浮点double 转化为长整型 long 为缩窄转化

  3. (1)c=sizeof yam; //结果是整个数组的字节数 c=12;

  (2)c=sizeof yam[0]; //结果是元素的字节数 c=4;

  (3) sizeof yam/sizeof yam[0] 可以用于计算数组元素个数

  4. C++标准模板库(STL)提供了数组替代品——vector ,C++11新增模板类array.

  5. 在确定存储字符串所需的最短数组时,别忘了将结尾的空字符计算在内。

  6. 'S’是一个字符常量, “S”表示两个字符S和\0组成的字符串。 “S”实际上表示字符串所在的内存地址。

  7. 数组初始化字符串常量: char name1[15]=“C++OwBody”;

  sizeof (name1)=15 ; // 整个数组长度

  strlen(name1)=9; // 存储在数组中的字符串长度,只计算可见字符,不计算空字符和结束字符\0;

  4. 面向行的输入:一般在输入名字变量时应使用面向下一行输入,读取多个单词

  (1) cin.getline(name,20);//name:数组名,20:字符数可以读取一行中不超过字符数的多个单词, Enter生成换行符,并将换行符替换为空字符(1) cin.getline(name,20);//name:数组名,20:字符数可以读取一行中不超过字符数的多个单词, Enter生成换行符,并将换行符替换为空字符

  (2)cin.get(name,20) ; cin.get(desetr,20) ; //会读到行尾并保留换行符到输入队列中连续2次调用get(),在第二调用看到的第一个字符时换行符,认为以达到行尾,无法继续读取

  正确调用方法:cin.get(name,20).get();

  5. 空行或其他问题,用以下命令恢复输入: cin.clear();

  6. string 对象声明为简单变量,而不是数组,程序可自动处理string 的大小。利用string,加入头文件 #include

  7. (1)char charr1[20]; char charr2[20]=“jagura” ;

  charr1=charr2; //此句数组赋值语句不合法

  strcpy(charr1,charr2); //将charr2复制到charr1

  strcat (charr1,charr2); //将charr2附加到charr1末尾,

  int len=strlen(charr1); //确定字符串中字符数 strlen()是函数

  (2)string str1; string str2=“pather”; str1=str2; //最后一句合法

  string str3; str3=str1+str2; str2+=str1; //合法

  int len=str1.size();//确定字符串中字符数 str1是一个string类 的对象,size()是string类的一个方法。

  6. char charr[20]; cout<

  string str; cout<

  7. 将下一行输入读取到数组中的代码: cin.getline(charr1,20); //这句表明cin是istream类的对象,getline()是istream类的方法

  将下一行输入读取到string对象中的代码:getline(cin.str); //这句表明getline()不是类方法,在istrea类中有处理double,int

  //等其他基本类型的类方法,但没有处理string对象的类方法

  cin>>str; //合法,应用了istream类的一个成员函数cin>>x

  10. 结构声明初始化:#include

  struct inflatable{ char name[20], float volume, double price};

  struct inflatable{ std::string name, float volume, double price}; //结构可以将string类作为成员,但要指明访问的名称空间

  inflatable duck={“Daphe”, 0.12, 9.98};

  inflatable Bobu; Bobu=duck; //结构赋值是有效的

  struct peak{ int number, char car[20]} Ala, bay; // Ala, bay是结构peak的两个结构变量。

  初始化结构数组: inflatable guest [2]={ {“Daphe”, 0.12, 9.98}, {“Bobu”, 0.34, 6.34} };

  11. 共用体:可以储存不同数据类型,但具体某一时刻只能储存一种类型。

  12. 枚举: enum spectrum { red, orange, yellow, green, blue, violet, indigo, ultraviolet }; //符号常量,对应的整数值为0~7

  spectrum band; //band只能从枚举spectrum定义的8个常量里选择值

  设置枚举量的值:指定的值必须为整数

  enum bits{,two=2, four=4, eight=8 };

  enum bitstep{ first, second=100, third }; //first默认为0,后面未初始化的枚举量比前面大1,third =101

  enum {zero, null=0, one, nuero=1}; //可以创建多个相同值的枚举量

  枚举的取值范围: bits myflag; myflag=bits(126); //合法,上限为最大值的2的幂-1,2^8-1=127


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30239065/viewspace-2714813/,如需转载,请注明出处,否则将追究法律责任。

上一篇: C++ Primer Plus随记1
请登录后发表评论 登录
全部评论

注册时间:2015-05-08

  • 博文量
    178
  • 访问量
    82003