第10章 指针(三)对地址进行分类------指针类型
来源:互联网 发布:淘宝开店教程百度云 编辑:程序博客网 时间:2024/05/21 06:35
我们已经知道,指针就是首地址。
在日常生活中,我们认识了一个人A,而后我们用他的电话联系他,当然关系好些,可以留下其地址,以便登门拜访。于是我们用一个本子,记录下电话和地址,这个记录电话地址的本子,就是我们常说的电话本儿,现在我们的手机里面就有电话本,功能强些的电话簿,还有记录地址的功能。通过地址我们就可以找到他们。因此,记录地址是我们日常必需的一个工作。
在计算机中, 我们定义了一个变量A,而后我们用变量名A访问它,当然深入编程,也可留下A的首地址,以便登门拜访。于是我们需要记录下A的首地址;C语言中,我们可以使用一个变量B来记录A的首地址的,这里的B是一种特殊的变量,是专门用来存放地址的变量;有关这种地址变量的定义,我们会在后面描述。通过B中的地址,我们就可以找到A了。因此,存储首地址是我们C编程必需的一个工作。
好,现在,我们首先,对地址簿中,可能的地址,进行分类,
日常生活中,我们的地址簿是一个本子,其中人的地址是按照朋友、同学、同事、亲戚、好友等等分类的,而且可以用不同颜色的笔来区别!比如红笔写的地址,代表朋友。黑笔,代表同学。黄笔,代表同事。绿笔,代表亲戚。蓝笔,代表好友。
电脑编程中,我们的地址簿中存放的是一些变量或函数的首地址。我们不能用颜色来分类地址,而是按照整型、浮点、字符、数组、函数等等对地址进行分类,分成整型地址、浮点地址、字符地址、数组地址、函数地址等等,也就是说地址是有类型的,这些类型是繁杂的,需要认真加以区别和记忆!
1、普通变量首地址的类型:
我们已经很熟悉,用int定义的变量,能存放-32768~+32767这个范围内整数,这种变量的首地址是有类型的,类型是int *,这里*的意思就是地址类型。
例如:有int a;那么int a的首地址我们简写成&a,于是&a的类型就是int *
如果说,int变量和int变量的首地址之间有类型的对应关系的话,
那么,变量是int类型,相应的,该变量首地址是int *类型,简写为:
int ---->>>> int *
同理:float---->>>>float *
char---->>>>char *
unsigned---->>>>unsigned *
long---->>>>long *
.....................
2、一维数组首地址的类型:
int---->>>>int * float---->>>>float * char---->>>>char *;
例如:int a[10]; 其首地址就是数组名a , 于是a就是int *类型的。
而此数组中,任意一个元素的首地址的类型,也是int *类型的。
比如a[5]的首地址是&a[5],也是int *类型的
3、二维数组首地址的类型:
假设有2维数组定义如下:
int a[3][4];
那么把int a[3][4],用小括号把数组名括起来变成int (a)[3][4],再把数组名变成*,即int(*)[3][4],接着把表示行数的部分[3]去掉,变成int (*)[4],就是这个2维数组地址的类型。
int a[3][4]; ------>>>> int (*)[4]
一般的,二维int 数组名[数组行数][n]----->>>>int (*)[n],而此二维数组每行必须有n列。
于是同理:
二维float 数组名[数组行数][n]----->>>>float (*)[n]
二维char 数组名[数组行数][n]---->>>>char (*)[n]
4、函数首地址的类型:
对于函数,假设,有函数int F(void){...},那么,用int (*)(void)作为它的首地址(又称入口地址)的类型。
这个类型是如何来的呢?就是把其函数首部 int F(void),用小括号把函数名括起来变成int (F)(void),再把函数名变成*,即int(*)(void),就是该函数入口地址的类型。
int F(void){...}---->>>>int (*)(void)
从上面可以看到,地址类型中,都用到一个*
我们已经知道,首地址就是指针,因此上述地址类型,就是指针类型。
学习指针的第一关就是能熟悉上面这些繁杂的地址类型的写法,这,是必须穿越的第一关哦
在日常生活中,我们认识了一个人A,而后我们用他的电话联系他,当然关系好些,可以留下其地址,以便登门拜访。于是我们用一个本子,记录下电话和地址,这个记录电话地址的本子,就是我们常说的电话本儿,现在我们的手机里面就有电话本,功能强些的电话簿,还有记录地址的功能。通过地址我们就可以找到他们。因此,记录地址是我们日常必需的一个工作。
在计算机中, 我们定义了一个变量A,而后我们用变量名A访问它,当然深入编程,也可留下A的首地址,以便登门拜访。于是我们需要记录下A的首地址;C语言中,我们可以使用一个变量B来记录A的首地址的,这里的B是一种特殊的变量,是专门用来存放地址的变量;有关这种地址变量的定义,我们会在后面描述。通过B中的地址,我们就可以找到A了。因此,存储首地址是我们C编程必需的一个工作。
好,现在,我们首先,对地址簿中,可能的地址,进行分类,
日常生活中,我们的地址簿是一个本子,其中人的地址是按照朋友、同学、同事、亲戚、好友等等分类的,而且可以用不同颜色的笔来区别!比如红笔写的地址,代表朋友。黑笔,代表同学。黄笔,代表同事。绿笔,代表亲戚。蓝笔,代表好友。
电脑编程中,我们的地址簿中存放的是一些变量或函数的首地址。我们不能用颜色来分类地址,而是按照整型、浮点、字符、数组、函数等等对地址进行分类,分成整型地址、浮点地址、字符地址、数组地址、函数地址等等,也就是说地址是有类型的,这些类型是繁杂的,需要认真加以区别和记忆!
1、普通变量首地址的类型:
我们已经很熟悉,用int定义的变量,能存放-32768~+32767这个范围内整数,这种变量的首地址是有类型的,类型是int *,这里*的意思就是地址类型。
例如:有int a;那么int a的首地址我们简写成&a,于是&a的类型就是int *
如果说,int变量和int变量的首地址之间有类型的对应关系的话,
那么,变量是int类型,相应的,该变量首地址是int *类型,简写为:
int ---->>>> int *
同理:float---->>>>float *
char---->>>>char *
unsigned---->>>>unsigned *
long---->>>>long *
.....................
2、一维数组首地址的类型:
int---->>>>int * float---->>>>float * char---->>>>char *;
例如:int a[10]; 其首地址就是数组名a , 于是a就是int *类型的。
而此数组中,任意一个元素的首地址的类型,也是int *类型的。
比如a[5]的首地址是&a[5],也是int *类型的
3、二维数组首地址的类型:
假设有2维数组定义如下:
int a[3][4];
那么把int a[3][4],用小括号把数组名括起来变成int (a)[3][4],再把数组名变成*,即int(*)[3][4],接着把表示行数的部分[3]去掉,变成int (*)[4],就是这个2维数组地址的类型。
int a[3][4]; ------>>>> int (*)[4]
一般的,二维int 数组名[数组行数][n]----->>>>int (*)[n],而此二维数组每行必须有n列。
于是同理:
二维float 数组名[数组行数][n]----->>>>float (*)[n]
二维char 数组名[数组行数][n]---->>>>char (*)[n]
4、函数首地址的类型:
对于函数,假设,有函数int F(void){...},那么,用int (*)(void)作为它的首地址(又称入口地址)的类型。
这个类型是如何来的呢?就是把其函数首部 int F(void),用小括号把函数名括起来变成int (F)(void),再把函数名变成*,即int(*)(void),就是该函数入口地址的类型。
int F(void){...}---->>>>int (*)(void)
从上面可以看到,地址类型中,都用到一个*
我们已经知道,首地址就是指针,因此上述地址类型,就是指针类型。
学习指针的第一关就是能熟悉上面这些繁杂的地址类型的写法,这,是必须穿越的第一关哦
- 第10章 指针(三)对地址进行分类------指针类型
- 第10章 指针(二) 首地址----------指针
- 第10章 指针(四) 地址簿-----指针变量
- 第10章 指针(五) 使用地址-------指针的引用
- C++指针之对未声明的地址进行访问
- 指针之对未声明的地址进行访问
- 第10章 指针(一) 内存地址单元
- 第10章 指针(六) 指针小结
- 第2节 指针类型
- 指针分类
- 快速排序中对指针地址所指向的值进行排序的代码
- 指针的内容 ; 指针的地址 指针所指向的内容 指针的类型 指针所指向的类型
- 指针类型强制转换及地址打印
- 利用指针进行类型强制转换(c指针详解)
- 第三章:指针类型
- 用指向指针的指针对字符串进行排序
- 指针地址
- 利用指针对两个数字进行排序
- 系统程序员成长计划-Write once, run anywhere(WORA)(下)
- 第8章 函数(十) 小结
- 第9章 预处理命令
- 第10章 指针(一) 内存地址单元
- 第10章 指针(二) 首地址----------指针
- 第10章 指针(三)对地址进行分类------指针类型
- 第10章 指针(四) 地址簿-----指针变量
- 分页 js 代码
- 系统程序员成长计划-拥抱变化(上)
- 第10章 指针(五) 使用地址-------指针的引用
- 第10章 指针(六) 指针小结
- 第10章 指针(七) 应用1------函数间数据的双向传递
- 什么样的测试人员是好的测试人员
- Google Docs 新增绘图功能