c++ 数组 结构体

接下来的一点时间我将会记录下我看的c++的一些心得体会,人贵在坚持,希望我可以一直坚持下去!!Go Fighting!
 

一.c++复合数据类型:

数组类型的一些注意事项:

  1. sizeof的用法:
  • 当用在数组名上时,例如int a[5];sizeof(a);得到的结果为5*sizeof(int);然而若是用在指向该数组的指针上时,例如int* b=a;sizeof(b);得到的结果为4(其实就是sizeof(int));
  • sizeof和strlen的区别:后者是用来测量字符串的长度的,其判断地依据是字符串结束后的''。strlen只是单纯的计算字符串的个数,且就算是用指针也可以得到字符串的个数!
  1. 数组不能将一个数组直接赋值给另外一个数组
  1. 字符串数组。char a[10],当给其用字符串初始化时,将会自动的在其后部添加'',且储存在字符串数组中的字符串的一些操作,合并,删减,需要函数strcpy,strcat等等,需加上头文件<cstring>,
  1. 字符串:字符串的使用必须加上头文件<string>,字符串之间可以直接赋值,string c,b="qq";c=b;类似于这样的,包括相应的字符串的增长可以通过加法实现,其长度可以通过c.size();类方法实现。
  2. 数组还有一些替代品

vector类:在使用时首先要添加头文件<vector>,声明的格式是vector <typename> a(n);

 

结构体的一些注意事项(struct):

  1. 结构体之间可以通过直接赋值的方法传递结构体中的值
1 struct view
2 {
3     float a;
4     int    b[2];
5 };
6 view x1 = { 1.0, { 1.0, 2.0 } };//结构体对象初始化个成员之间用,连接
7 view  x2 = x1;//即便是数组也可以赋值
  1. 结构体也可以构建成结构体数组,结构体指针,其实可以将结构体看成一种变量类型,一种特殊的类,下面就这两种进行说明:
1 view x1[2]={{ 1.1, { 1, 2 } }, { 1.2, { 3, 4 } }};
2 view *x2 ;//或者view *x2=x1;
3 x2 =&x1[0];//x2=x1,x1为一个数组其数组名字就代表地址。
4 
5 view x3 = { 1.3, {5,6} };
6 view *x4;//或者view *x4=&x3;
7  x4 =&x3;
8 cout <<x4->a << endl;//结构体指针访问结构体成员用->

 共用体的一些注意事项:

其实共用体就是一种能适应多种数据格式的数据类型。共用体可以储存多种数据类型,但是同时只能使用其中的一种。

1 union view
2 {
3 int int_a;
4 double double_b;
5 }x1;
6 x1.int_a=1;
7 x1.double_b=2.2;//当使用double_b时int_a将不复存在
原文地址:https://www.cnblogs.com/yskn/p/8931675.html