C++ Primer经典书目阅读之四:数组和指针

1. 数组

1.与vector相比,数组的显著缺陷在于:数组的长度是固定的,而且程序员无法知道一个给定数组的长度。

2.与vector不同,一个数组不能用另外一个数组初始化,也不能将一个数组复制给另一个数组,这些操作都是非法的。

C++中求数组int a[size]中元素个数可以用sizeof(a)/sizeof(int)

2.指针

1.尽量避免使用指针和数组

2.指针和引用的区别:

第一:引用总是指向某个对象,定义引用时没有初始化是错误的;

第二:赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联,引用一经初始化,就始终指向同一个特定对象。

3.const指针必须在定义时初始化。

3.动态数组

1.C语言使用malloc和free在自由存储器中分配存储空间,C++使用new和delete实现同样的功能。

  int*p = new int[10];

 delete []p;

2.调用new动态创建长度为0的数组是合法的。

时间: 2024-10-14 09:01:14

C++ Primer经典书目阅读之四:数组和指针的相关文章

C++ Primer经典书目阅读之五:表达式

表达式 1.   算术操作符 算术操作符主要有:   1.对两个整数做除法,结果仍为整数,如果它的商包含小数部分,则小数部分会被截除: 2.求余操作的操作数只能为整型: 3.如果两个操作数为正,除法和求余操作的结果也是正数:如果两个操作数的结果都是负数,除法操作的结果为正数或零,而求么操作的结果则为负数或零: 2.关系操作符和逻辑操作符 关系操作符主要有:   1.逻辑与和逻辑或操作符综述先计算其左操作数,然后再计算其右操作数.只有在仅靠做操作数的值无法确定逻辑表达式的结果时,才会求解其又操作数

把《c++ primer》读薄(4-2 c和c++的数组 和 指针初探)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1.我们知道,将一个数组赋给另一个数组,就是将一个数组的元素逐个赋值给另一数组的对应元素,相应的,将一个vector 赋给另一个vector,也是将一个vector 的元素逐个赋值给另一vector 的对应元素: //将一个vector 赋值给另一vector,使用迭代器访问vector 中的元素 vector<int> ivec(10, 20); vector<int> ivec1; for (vecto

简单了解PHP编程中数组的指针的使用_php技巧

要使用数组中的元素,就需要数组的定位.定位的实现需要借助数组指针来完成.PHP中有很多函数可以移动数组指针.下面将给大家介绍几个. 将指针移动到下一个数组位置next() next()函数返回紧接着放在当前数组指针下一个位置的数组值.其形式如下: mixed next(array array) 以下是一个例子: $fruits = array("apple", "banana", "orange", "pear"); echo

指向多维数组的指针变量

问题描述 指向多维数组的指针变量 #include int main() { int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; for(p=a[0];p<a[0]+12;p++) { if((p-a[0])%4==0) printf(" "); printf("%4d",*p); } } 把for(p=a[0];p<a[0]+12;p++)改成for(p=a[0];p<a+3;p++)为什么是正确的

再谈C语言中数组和指针之间的互操作

我曾说过,在C语言中只有一维的数组(这是我对数组的看法),而且数组元素可以是任何类型的数据(或对象),自然也可以是另外的一个数组(因为数组也是一种数据类型).所以如果你坚持要说有多维数组,那也不是不可能的事情.我们只要把一个数组赋值给另一个数组的元素就可以了.当然了,我们必须保证在程序编译期数组的大小是一个固定的常数. 其实,数组的操作很简单的.只要我们确定一个数组的大小和指向该数组下标为0的元素的指针,其他的任何一个数组下标的运算都等同于一个对应的指针运算,所以我们说"数组和指针是可以相互操作

C/C++中数组和指针类型的关系

对于数组和多维数组的内容这里就不再讨论了,前面的教程有过说明,这里主要讲述的数组和指针类型的关系,通过对他们之间关系的了解可以更加深入的掌握数组和指针特性的知识! 一个整数类型数组如下进行定义: int a[]={1,2,3,4}; 如果简单写成: a;//数组的标识符名称 这将代表的是数组第一个元素的内存地址,a;就相当于&a[0],它的类型是数组元素类型的指针,在这个例子中它的类型就是int* 如果我们想访问第二个元素的地址我们可以写成如下的两种方式: &a[1]; a+1//注意这里

C语言中的数组和指针汇编代码分析实例

  这篇文章主要介绍了C语言中的数组和指针汇编代码分析实例,本文用一则C语言例子来得到对应的汇编代码,并一一注解每句汇编代码的含义,需要的朋友可以参考下 今天看<程序员面试宝典>时偶然看到讲数组和指针的存取效率,闲着无聊,就自己写了段小代码,简单分析一下C语言背后的汇编,可能很多人只注重C语言,但在实际应用当中,当出现问题时,有时候还是通过分析汇编代码能够解决问题.本文只是为初学者,大牛可以飘过~ C源代码如下: 代码如下: #include "stdafx.h" int

理解C语言——从小菜到大神的晋级之路(8)——数组、指针和字符串

       本期视频点击这里        在前面几次我们接触的数据类型都是简单数据类型,使用一个数据个体表示一个元素.C语言中还提供了多种复杂数据类型,其中最简单的一种就是数组.数组这一结构使用内存中一段连续的内存空间保存一组相同类型的变量,这些变量通过数组的下标/索引的不同相互区分.数组与指针有着十分紧密的联系,通常使用数组下标能实现的操作都可以使用指针完成,而且使用指针的程序通常效率更高.但是指针和数组也存在着一些明显的差别,如果误用将导致错误.另外,C语言中还定义了一种极为常用的特殊的

Android For JNI(四)——C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统

Android For JNI(四)--C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统 好几天每写JNI了,现在任务也越来越重了,工作的强度有点高,还有好几个系列的博客要等着更新,几本书还嗷嗷待哺的等着我去看,github上的两个散漫的开源,基础入门的视频也在录制,还要学习新的知识, 都是一种挑战,不知道为何,最近懒散了,看来还得再加把劲,今天我们继续延伸一下C的一些小知识 一.数组 C的数组和JAVA也是类似的,我们写一段小程序 #include <stdio.h> #inc