第四章:数组与指针

1:初始化:内置类型的数组在函数体内没有初始化,在外是有的;而指针是都没有的。

2:null叫空字符—‘\0’为0--char--1个字节;NULL---叫空指针--为0--int---4个字节的。

3:数组是不能直接赋值与复制的;而容器可以;

4:size_t   ptrdiff_t 数组==== size_type difference_type 容器

5:void*是类型不确定;NULL是对象不确定,类型确定

6:超出末端指针,末端迭代器;用途一样,看门狗

7:const对象的指针不可以初始换非const对象的指针,但是反之可以;对于const变量是可以初始化非const变量的,反之亦可以。

8:const指针其实是自以为是指向const对象的指针

9:typedef定义不能简单看做是文本展开,特别是const时

10:习惯:const放在类型前,而对于typedef后,注意放后面易于理解。

11:多维数组,只是数组的数组;注意 int *p[4]和int (*p)[4]的区别,前者是表示存放4个int指针,后者表示存放4个int

时间: 2024-08-29 12:48:49

第四章:数组与指针的相关文章

C++primer第四章 数组和指针

4.1. 数组 数组是由类型名.标识符和维数组成的复合数据类型(第 2.5 节),类型名规定了存放在数组中的元素的类型,而维数则指定数组中包含的元素个数. 数组定义中的类型名可以是内置数据类型或类类型:除引用之外,数组元素的类型还可以是任意的复合类型.没有所有元素都是引用的数组. 4.1.1. 数组的定义和初始化 数组的维数必须用值大于等于 1 的常量表达式定义(第 2.7 节). 此常量表达式只能包含整型字面值常量.枚举常量(第 2.7 节)或者用常量表达式初始化的整型 const 对象. /

第四章 数组,字符串和指针

数组 数组若没有指定初始值则为内存遗留值 如果指定了部分初始值,那么其余部分也默认被指定为0: long data[100]={0};          //给data数组的所有元素赋0 字符串是附加有特殊字符(/0)的字符序列 数组的填充: char president[]="thank you"; wchar_t president[]=L"thank you";     //Unicode字符串 const int max=80; char name[max]

第十四章 数组

第十四章 数组 1.  什么是数组 三要素:数组类型  数组名  下标 2.  数组元素 3.  数组下标越界 一旦越界程序就会报错 4.  倒序输出 5.  将数组的下标定义为常量以便于修改 6.  手动操作数组元素 7.  数组的初始化 空间不够报错,多了用0补 ① ② 字符数组的初始化 char array[10]={"hello"} 等价于char array[10]= "hello" char array[10]={'h','e','l','l','o',

《C++ Primer 4th》读书笔记 第4章-数组和指针

原创文章,转载请注明出处: http://www.cnblogs.com/DayByDay/p/3911573.html <C++ Primer 4th>读书笔记 第4章-数组和指针

第四章 数组、关联数组和别名使用

第四章 数组.关联数组和别名使用 数组 名词解释 数组作为一种特殊的数据结构在任何一种编程语言中都有它的一席之地,数组在shell脚本中也是非常重要的组成部分,它借助索引将多个独立的数据存储为一个角色. 语法 普通数组只能使用整数作为数组的索引值. 定义数组 格式: arrary[key]=value array=(value value value ...) 数组方法 单行一列值: array_n=(1 2 3 4) 打印数组第一个值: echo ${array_n[0]} # 0 代表数组里

小猪猪逆袭成博士之C++基础篇(四)数组、指针、vector、迭代器

小猪猪逆袭成博士之C++基础篇(四) 关键词:数组,Vector. 一.数组与指针 数组相信大家学过C语言或者其他的语言都不陌生,简单的就是同一个变量类型的一组数据.例如:int a[10],意思就是从a开始有10个连续的int大小的空间.我们还是从初始化说起. 我们以数据类型int为例,当然也可由有很多的数据类型,可以是像int,double这种,也可以是自定义的类,一般的初始化方法有: int a[10]; int a[10]={0}; int a[3]={0,1,2}; 在前面的文章中,有

第一章 数组与指针概念剖析

数组与指针生来就是双胞胎,多数人就是从数组的学习开始指针的旅程的.在学习的过程中,很自然就会经常听到或见到关于数组与指针的各种各样的看法,下面我节选一些在各种论坛和文章里经常见到的文字: “一维数组是一级指针” “二维数组是二级指针” “数组名是一个常量指针” “数组名是一个指针常量” ........................ 这些文字看起来非常熟悉吧?类似的文字还有许多.不过非常遗憾,这些文字都是错误的,实际上数组名永远都不是指针!这个结论也许会让你震惊,但它的确是事实.但是,在论述这

【C语言学习】《C Primer Plus》第10章 数组和指针

学习总结 1.数组初始化方式: int a[]={1,2,3} int a[SIZE]={1,2,3} //SIZE是宏定义,数组初始化个数不能大于SIZE,否则报错:当个数小 //SIZE,自动补0:只定义不初始化,默认值是当前存储单元中已有的数值. int a[SIZE/不定长]={1,[3],2} //C99支持通过[int]=x来定义具体位置值,跳过的默认值为0. 2.通过const修饰的数组为只读数组,数组的每个元素当成常量来处理,如: const int a[2]={1,2}; co

《C专家编程》笔记(四)——数组和指针并不相同

1. 区别定义和声明 定义:只能出现在一个地方.确定对象的类型并分配内存,用于创建新的对象.例如int my_array[100]; 声明:可以多次出现.描述对象的类型,用于指代其他地方定义的对象(例如在其他文件里).例如:extern int my_array[]; 2. 指针和数组的访问机制 数组: char a[9] = "abcdefgh"; c = a[i]; 编译器符号表具有一个地址9980.(可以认为在程序编译的时候,所有a的相关操作都被替换为地址9980相关的操作. 运

【总结】第四章 数组

1. 数组是相同类型数据的有序集合. 2. 数组的四个基本特点: -- 其长度是确定的 -- 其元素必须是相同类型 -- 可以存储基本数据类型和引用数据类型 -- 数组变量属于引用类型 3. 一维数组的声明方式 -- type[] arr_name; (推荐使用这种方式) -- type arr_name[]. 4. 数组的初始化:静态初始化.动态初始化和默认初始化. 5. 数组的长度:数组名.length,下标的合法区间[0,数组名.length-1]. 6. 数组拷贝:System类中的st