美文网首页C指针
C语言学习征途——指针函数,函数指针,数值指针,指针数值,结构体

C语言学习征途——指针函数,函数指针,数值指针,指针数值,结构体

作者: Eden0503 | 来源:发表于2018-12-02 18:02 被阅读0次

数组指针。

数组指针(行指针),定义 int (*p)[N]; 表示的是p是一个指针,指向一个整型的一维数组,该数组的长度是N,若执行 p+1, p将会跨过N个整型数据的长度。
在数组指针中,()的优先级高。
int(*a)[10] : a是一个数组指针,指向一个含有10个int元素的数组。
-------------------------------------example:-----------------------------

指针数组

指针数组,定义 int *p[N]; [ ] 先和p结合成一个数组,而 int * 说明这是一个整型指针数组,其中有N个指针类型的数组元素。指针数组指的是一个数组里面装的是指针。
执行p+1是错误的 ;
执行p=a是错误的, 因为p是个不可知的表示。
只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。
*p=a是正确的,这里 *p 表示指针数组第一个元素的值,a的首地址的值。
在指针数组, [ ] 的优先级高。
int *p[3] 表示一个一维数组内存放着三个指针变量,分别是p[0]、p[1]、p[2]。

比如,字符指针数组不能用于直接存放字符串,因为指针数组的元素存放的都是存储单元地址的指针变量,不能直接存放数值。
修改方案: 定义一个二维的字符数组,再把每行的起始地址赋给指针数组的相应元素。

总结:
数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。
拓展:
比如要表示数组中i行j列一个元素:
*(p[i]+j)、*(*(p+i)+j)、(*(p+i))[j]、p[i][j] 都是正确的。

函数指针(指向函数的指针)

函数指针定义: 数据类型标识符 (*指针变量名)( );
eg: int (*p)(); p是一个指向函数的指针,函数的返回值是整型。

指针函数

指针函数定义: 数据类型标识符 *函数名 ( 形参数据说明表列 );
通过返回一个数据的存储单元地址或者一个数据集合的存储单元的起始地址,达到返回一个数据或者一个数据集合的目的。
int *p(); 定义一个返回值是指针型数据的函数

结构体数组

结构数组就是一个数组,只不过数组中各元素的数据类型是结构类型罢了。

相关文章

  • C语言学习征途——指针函数,函数指针,数值指针,指针数值,结构体

    数组指针。 数组指针(行指针),定义 int (*p)[N]; 表示的是p是一个指针,指向一个整型的一维数组,该...

  • C语言函数指针和指针函数

    C语言函数指针和指针函数 在学习C语言的过程中,“指针函数”和“函数指针”经常容易搞混了, 最简单的辨别方式就是看...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • 函数指针

    c语言中的指针可以指向整数、字符或者结构体类型等,同样也可以指向一个函数,这就是函数的指针。函数指针的值等于该函数...

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

  • C语言基础及指针⑤动态内存分配

    接续上篇C语言基础及指针④函数指针 在上一篇我们了解C语言中的函数及函数指针 , 使用函数指针 , 模拟了网络请求...

  • C语言20 结构体指针

    C语言20 结构体指针 探测结构体指针的特性 ++、-- 加法与减法 指针相减 使用结构体指针 结构体指针一定要指...

  • 函数指针,联合体,枚举,结构体和结构体指针

    函数指针 联合体 枚举 别名 结构体 结构体指针

  • C语言 - 中

    总目录 前言 本文介绍C语言的指针:一、指针介绍二、指针使用三、数组指针和指针数组 函数指针和指针函数 环境 1...

  • 6.结构体相关

    一 C 结构体和结构体指针 eg1: 一 结构体里面定义函数 通过结构体指针访问结构体里面定义的函数。 eg2:

网友评论

    本文标题:C语言学习征途——指针函数,函数指针,数值指针,指针数值,结构体

    本文链接:https://www.haomeiwen.com/subject/lizjcqtx.html