11选5出号精准规律:C++ Primer ch3 指针和数组

吉林省十一选五走势图 www.el2sw.cn 2/22/2017来源:ASP.NET技巧人气:6460

1. 使用数组的时候,编译器一般会把它转换成指针。

2. auto与decltype在分析数组类型时的区别:

int a[] = { 1,2,3 }; auto b = a; // 得到的是指针类型int (*p)[3] decltype(a) c; // 得到的是数组类型int [3]

3. C++11标准库函数begin()和end()

接受数组作为参数 定义在iterator头文件中 end()返回的是不存在的尾后指针 int a[] = { 1,2,3 }; int *pB = begin(a); int *pE = end(a); // 利用begin和end遍历数组 for (auto p = pB; p != pE; ++p) { cout << *p << ' '; }

4. 指针相减得到的结果类型是名为ptrdiff_t的标准库类型。

5. 存在数组 int a[] = {1 , 2 , 3 , 4 , 5}; 当你使用下标对数组元素进行随机访问的时候(比如访问a[2]),其实进行的是这样的操作:

int *p = a; int val = *(p + 2);

以此得出,只要指针指向的是数组中的元素,都可以执行下标运算:

int a[] = { 1,2,3,4,5 }; int *p = &a[2]; int j = p[1]; // j为a[2+1] int k = p[-2]; // k为a[2-2]

6. C++标准库与旧代码的接口

// c_str()函数:将string类转换为C风格的字符串 string s = "Hello World!"; const char *s_elder = s.c_str(); //将内置数组的内容复制到vector int a[] = { 0,1,2,3,4,5 }; vector<int> v(begin(a), end(a));

7. 关于多维数组

int a[3][4]; int(&row)[4] = a[1];// 将row绑定到a的第二个4元素数组上

row是行,col是列

使用C++ 11范围for语句处理多维数组

int a[3][4]; int ct = 1; for (auto &row : a) { for (auto &col : row) { col = ct++; } }

注意,无论是否进行读写操作,必须将外层循环的控制变量声明成引用类型,这是避免数组被自动转换为指针。 假如循环写成如下格式:

for(auto row : a) for(auto col : row){}

摘自C++ PRimer:

程序将无法通过编译。这是因为,像之前一样的第一个循环遍历a的所有元素,注意元素实际上是大小为4的数组。因为row不是引用类型,所以编译器初始化row时会自动将这些数组形式的元素转换成指向该数组内首元素的指针。这样得到的row的类型就是int * ,显然内层的循环就不合法了,编译器将试图在一个int * 内遍历,这显然和程序的初衷相去甚远。



  • “游、购、娱”持续升温 中国经济内生动力表现强劲 2019-04-19
  • 我老张工经历过中国计划经济时代,实践过计划经济,岂能不知计划经济?!现在的市场经济,我也有了实践感受。比较之,深感计划经济是适合社会主义的,而市场经济是不适合社 2019-04-19
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-04-18
  • 特朗谱跟你一样,也经常懵逼:“这么简单的道理也想不通?”;"西方民主这么好,你咋不学捏?? 2019-04-18
  • 大学毕业生是不是越来越过剩?当然大学毕业生可以在多种行业就业,比如农村、服务业等等。不过,过剩还是一种极大的浪费。 2019-04-17
  • 要战胜对手需要学习对手的长处,弥补自己的短处,但这不是关键,关键是发扬自己的长处。这叫你打你的,我打我的。 2019-04-16
  • [大笑]精神心理科医生在等你…… 2019-04-16
  • 燃!来南京,看中国电科如何燃爆第八届世界雷达展 2019-04-15
  • VAR技术再抢镜 瑞典队1-0点杀韩国 2019-04-15
  • 中国共产党各时期的入党誓词 2019-04-14
  • 浙江:三批次壁纸抽检不合格 选购注意“看摸擦闻” 2019-04-13
  • 世界杯—凯恩补时绝杀独中两元 英格兰2 2019-04-12
  • 全国首例!团队联合成功攻关,这项新技术让食管癌手术更精准 2019-04-12
  • 线下提前一刻钟!电影节加映场开票出福利 2019-04-11
  • 蔬菜大县敲开“阿里巴巴” 2019-04-10
  • 110| 87| 514| 193| 942| 7| 737| 367| 363| 267|