admin 管理员组文章数量: 1184232
2024年3月14日发(作者:couchdb数据库)
C语言指针在数组和函数中的应用与常见错误
解析
论文导读::语言中储备空间的地址简称为指针。用scanf、puts函数输
入数据时。论文关键词:C语言,指针及应用,指针与数组,函数,实例
解析
一、指针的有关概念
1、指针的概念与实质
数据在运算机中储备时都占用一定大小的储备空间,每个储备空间对应一
个地址编号,运算机通过该编号找到储备空间以访问其中的内容。C语言
中储备空间的地址简称为指针,指针的实质确实是某个储备空间的地址(编
号)。指针和该指针所指向的储备空间中的内容是有本质区别的。
2、变量的指针、指针变量与指向的概念
在C语言中,变量所占用的内存单元的地址就称之为该变量的指针。变量
有三要素:名称、数据类型、当前值。指针变量确实是存放指针值的变量。
即指针变量所在的空间储备的是另外一个储备空间的地址,而非一样数据。
变量名表示了储备空间的名称及其中的值并参与相关运算。
指针变量的定义格式为:数据类型 *变量名称;
指针是C语言的专门数据类型。定义时,变量名前面的“*”表示该变量属
于指针变量,“数据类型”表示指针变量所指向的储备空间中存放的数据本
身的类型。指针本身的类型和指针所指向的空间中的数据类型是有区别的。
例如杂志网,int *p;指针变量p的类型确实是int*, 而p所指向的目标的
类型是int;当指针变量储备了另外一个同“数据类型”的一样变量的地址
时,称该指针变量“指向”了该变量。为了便于明白得,被“指向”的变
量通常称之为“目标变量”。指针变量只能指向定义时“数据类型”所标识
的数据类型的目标变量。例如:int a=10,*p=&a;。
3、一维数组的指针与指向一维数组的指针变量
一维数组是同类变量的有限集合,各元素占用连续的储备单元。因此,一
维数组的指针分为首指针(入口地址)和元素指针。首指针确实是该集合
中第一个元素所在空间的指针,可用数组名直截了当表示之。数组的任何
一个元素相当于同类的简单变量,元素的指针有两个表示形式:
⑴绝对地址,用求地址运算符&直截了当求得,格式为:&数组名[n]。(0
≤n<元素的个数)
⑵相对地址,是相关于数组首地址的偏移量,表示为:数组名+n。(0≤n<
元素的个数)
指针变量可指向同“数据类型”的任意目标变量或同“数据类型”任何数
组元素。
4、二维数组的行指针和列指针与指向二维数组的指针变量
二维数组可看着多个一维数组的集合。运算机中二维数组是按行存放的(元
素的储备单元地址是连续的),因此也能够把二维数组看成是专门的一维数
组。二维数组的指针分为行指针和列指针。为了便于明白得,能够形象的
将二维数组明白得为具有行列结构的二维表。二维数组的每一行都有一个
行指针。每一行相当于一个同类的一维数组,每行的元素也有各自的指针,
简称为列指针。二维数组的行指针、列指针、元素的指针可表示如下(便于
描述,设有定义:int a[M][N]):
⑴行指针:a+n杂志网,(0≤n<M,M为行数),n=0时表示第一行的行指针,
依次类推。
⑵列指针:*a+n或a[0]+n,(0≤n<M*N,N为列数),n=0时表示第一个
元素的指针,n=1时表示第二个元素的指针,依次类推,数组所有元素的地
址成线性关系。列指针即元素的指针。
⑶第m行第n列元素的指针:a[m]+n或&a[m][n]或*(a+m)+n,(0≤m<M,
0≤n<N)。
指向列指针(或元素)的指针变量和指向一样同类变量或一维数组元素的指
针变量一样。指向二维数组的行指针的指针变量,称之为行指针变量,有
别于列指针变量。行指针变量定义格式为:
数据类型 (*变量名)[N];/*小括号()、*、方括号[]差不多上不能省略的,N
为元素的个数*/
版权声明:本文标题:C语言指针在数组和函数中的应用与常见错误解析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710385998a570737.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论