C++ 墙角知识 04 我是用C++来写C的程序员.
来源:互联网 发布:大数据测试工程师 编辑:程序博客网 时间:2024/06/10 05:44
数组的元素应该为对象,因此不存在 引用的数组.
不允许使用一个数组初始化另一个数组,也不允许把一个数组赋值给另一个数组.
int * a[10]; 没有括号的情况,这定义一个数组,里面是 指针.
int (*a) [10]; 有括号时, 定义一个指针, 指向 int a[10]; 这样的数组.
int (&a) [10]; 有括号时,定义一个引用, 引用 int a[10]; 这样的数组.
可以由内向外阅读 这样的声明.
size_t是一种机器相关的 无符号类型,它被设计的足够大,能表示内存中任意对象的大小. 在 #include < cstddef.h>
维度是数组类型的一部分.
任何出现字符串字面值的地方都可以用以空字符结束的字符数组来替代.
我是用C++来写C的程序员.
因为数组和指针好像一样,
所以以\0结尾的数组 和 字符串 也很像.
但是如果一处地方需要C字符串,无法直接用string来代替它.
为此,string提供了一个c_str()的函数, 该函数返回C风格的字符串.
也就是说,该函数的返回结果是一个指针.指向以空字符结尾的 字符数组.
结果指针类型是 const char *
不保证c_str()返回的数组一直有效,如果要长期使用的话,最好是自己再拷贝一份吧.
使用数组,初始化vector, 只需要指明数组首地址,和尾后地址 就可以了.
int a[] = {1,2,3};
vector < int> ivec(a, a+3);
缓冲区溢出的主要原因是 使用越界的索引访问 数组,vector,string等.
想要使用类模板,想要提供关于类型的辅助信息.
如 vector< int> a;
- C++ 墙角知识 04 我是用C++来写C的程序员.
- 我是程序员,不是c#程序员
- 我是全新的C + +
- 我是新来的,想学C语言
- 我是如何成为程序员的--C的故事
- 我是如何成为程序员的--英语与C
- C++ 墙角知识 04
- 我是求C比的
- 黑马程序员_用C写的小游戏
- C的知识汇总
- 九九乘法表!(用C写的)
- 帮个忙 我是C菜鸟
- 标准C知识04
- 黑马程序员——C语言的初步知识
- 黑马程序员-c语言数组的一些知识温故
- 黑马程序员——C语言知识的总结
- c写的迷宫
- CGI简介&用C来写CGI程序简要指南
- windows10 x64 vs2015 MPI 1.4.1 环境配置
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1
- Mysql管理用户权限
- 遍历二叉树的递归与非递归算法
- 设计模式概述
- C++ 墙角知识 04 我是用C++来写C的程序员.
- 【读书笔记】iOS-引用计数
- 在Storm中使用C++开发Bolt总结
- 阮一峰:jQuery最佳实践
- Jaxp的dom解析
- Storm下运行C++(二)
- beanUtil工具
- 反射1
- Genymotion的shell的命令