第5章 指针和数组(笔记)
来源:互联网 发布:sql having 用法 编辑:程序博客网 时间:2024/06/07 18:10
指针和数组之间的关系十分密切。
ANSI C使用类型void *(指向void指针)代替char *作为通用指针的类型。
5.1 指针与地址地址运算符&只能用于内存中的对象,即变量与数组元素。不能作用于表达式、常量或register类型的变量。
一元运算符*是间接寻址或间接引用运算符。
指针只能指向某种特定类型的对象,每个指针都必须指向某种特定的数据类型。例外,指向void类型的指针可以存放指向
任何类型的指针,但不能间接引用其自身。
一元运算符*和&的优先级比算术运算符的优先级高。
5.2 指针与函数参数5.3 指针与数组5.4 地址算数运算
指针与整数之间不能相互转换,但是0是唯一的例外,常数0可以赋值给指针。
有效的指针运算包括:
1.相同类型指针之间的赋值运算;
2.指针同整数之间的加法或减法运算
3.指向相同数组中元素的两个指针间的减法或比较运算;
4.将指针赋值为0或指针与0之间的比较运算。
5.5 字符指针与函数5.6 指针数组以及指向指针的指针5.7 多维数组
f(int (*daytab)[13])
这种声明形式表明参数是一个指针,指向具有13个整型元素的一维数组。因为
方括号【】的优先级高于*的优先级,所以上述声明中,必须使用圆括号。
如果去掉int *daytab[13];
相当于声明一个数组, 该数组有13个元素,每个元素都是一个指向整型对象的指针。
5.8 指针数组的初始化5.9 指针与多维数组
int a[10][20];
int *b[10];
是不一样的。
指针数组最频繁的用处是存放具有不同长度的字符串。
5.10 命令行参数
ANSI标准要求argv[argc]的值必须为一空指针。
5.11 指向函数的指针5.12 复杂声明
int *f(); f是一个函数,它返回一个指向int类型的指针。
int (*pf)(); pf:是一个指向函数的指针,该函数返回一个int类型的对象。
如果创建复杂的声明?比较好的方法是,使用typedef通过简单的步骤合成。
char **argv
指向char类型指针的指针
int (*daytab)[13]
指向int类型数组的指针。
int *daytab[13]
有13个成员的数组,每个成员是指向int类型的指针。
void *comp()
一个返回void指针类型的函数
void (*comp)()
一个指向返回void类型函数的指针。
char (*(*x())[])()
一个返回数组的函数,这个返回的数组包含指向返回char类型的函数的指针。
char (*(*x[3])())[5]
一个数组包含3个元素,这3个元素是指向返回含有5个char类型元素的数组的函数。
ANSI C使用类型void *(指向void指针)代替char *作为通用指针的类型。
5.1 指针与地址地址运算符&只能用于内存中的对象,即变量与数组元素。不能作用于表达式、常量或register类型的变量。
一元运算符*是间接寻址或间接引用运算符。
指针只能指向某种特定类型的对象,每个指针都必须指向某种特定的数据类型。例外,指向void类型的指针可以存放指向
任何类型的指针,但不能间接引用其自身。
一元运算符*和&的优先级比算术运算符的优先级高。
5.2 指针与函数参数5.3 指针与数组5.4 地址算数运算
指针与整数之间不能相互转换,但是0是唯一的例外,常数0可以赋值给指针。
有效的指针运算包括:
1.相同类型指针之间的赋值运算;
2.指针同整数之间的加法或减法运算
3.指向相同数组中元素的两个指针间的减法或比较运算;
4.将指针赋值为0或指针与0之间的比较运算。
5.5 字符指针与函数5.6 指针数组以及指向指针的指针5.7 多维数组
f(int (*daytab)[13])
这种声明形式表明参数是一个指针,指向具有13个整型元素的一维数组。因为
方括号【】的优先级高于*的优先级,所以上述声明中,必须使用圆括号。
如果去掉int *daytab[13];
相当于声明一个数组, 该数组有13个元素,每个元素都是一个指向整型对象的指针。
5.8 指针数组的初始化5.9 指针与多维数组
int a[10][20];
int *b[10];
是不一样的。
指针数组最频繁的用处是存放具有不同长度的字符串。
5.10 命令行参数
ANSI标准要求argv[argc]的值必须为一空指针。
5.11 指向函数的指针5.12 复杂声明
int *f(); f是一个函数,它返回一个指向int类型的指针。
int (*pf)(); pf:是一个指向函数的指针,该函数返回一个int类型的对象。
如果创建复杂的声明?比较好的方法是,使用typedef通过简单的步骤合成。
char **argv
指向char类型指针的指针
int (*daytab)[13]
指向int类型数组的指针。
int *daytab[13]
有13个成员的数组,每个成员是指向int类型的指针。
void *comp()
一个返回void指针类型的函数
void (*comp)()
一个指向返回void类型函数的指针。
char (*(*x())[])()
一个返回数组的函数,这个返回的数组包含指向返回char类型的函数的指针。
char (*(*x[3])())[5]
一个数组包含3个元素,这3个元素是指向返回含有5个char类型元素的数组的函数。
- 第5章 指针和数组(笔记)
- 第5章 指针、数组和结构
- 【C++Primer学习笔记】第4章 数组和指针
- 指针数组和数组指针(笔记)
- c++ primer 第五版学习笔记-第6章-返回数组指针的函数和函数指针的数组
- C和指针读书笔记-第8章(数组)
- 第4章 数组和指针
- 第4章 数组和指针
- 第4章:数组和指针
- 第4章 数组和指针
- 第4章 数组和指针
- C++ Primer 学习笔记——第4章 数组和指针
- C和指针第4章笔记
- C++Primer笔记3(第四章-数组和指针)
- c语言笔记5-数组和指针
- 笔记(4)指针和数组--
- 《C++ Primer(第5版)》学习笔记:第3章 字符串、向量和数组
- 第四章数组和指针(数组)
- 在Java Swing中显示HTML网页,并能响应链接
- As3中删除数组的重复值
- 第4章 函数与程序结构(笔记)
- Java list 遍历
- 数组
- 第5章 指针和数组(笔记)
- web面试中,遇到无数次的问题“无状态的HTTP协议如何提供有状态的连接”?
- Jquery 获取当前链接所在行的其它表格数据
- gEcrit 2.8.1发布 Python源代码编辑器
- 第6章 结构(笔记)
- android中的AlertDialog.Builder
- 随机读取不重复的多条数据
- Redis几个认识误区
- cscope使用