- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指针及结构体
指针和结构体 指针变量 变量是在计算机内是占有一块存贮区域的, 变量的值就存放在这块区域之中 对于变量的访问形式之一, 就是先求出变量的地址,? 然后 再通过地址对它进行访问, 这就是指针变量 变量的指针 指变量的地址。变量的地址虽然在形式上好象类似于整数, 但在概念上不同于以前介绍过的整数, 它属于一种新的数据类型, 即指 针类型 若x为一整型变量, 则表达式x的类型是指向整数的 指针, 而它的值是变量x的地址 指针变量的一般定义为: ???? 类型标识符? *标识符; ??? 其中标识符是指针变量的名字, 标识符前加了*号,? 表示该变量是指针变 量, 而最前面的类型标识符表示该指针变量所指向的变量的类型。一个指针变 量只能指向同一种类型的变量, 也就是讲, 我们不能定义一个指针变量, 既能指 向一整型变量又能指向双精度变量 指针变量的引用 指针变量中只能存放地址, 因此, 在使用中不要将一个整数赋给一指 针变量 指针变量和一般变量一样, 存放在它们之中的值是可以改变的, 也就 是说可以改变它们的指向 例如: int i, j, *p1, *p2; ???? i=a; ???? j=b; ???? p1=i; ???? p2=j; 如 p2=p1 就使p2与p1指向同一对象i, 此时*p2就等于i, 而不是j 如 *p2=*p1 则表示把p1指向的内容赋给p2所指的区域 地址运算 比较运算若p==q为真, 则表示p, q指向数组的同一元 素; 若pq为真, 则表示p所指向的数组元素在q所指向的数组元素之前 指针和整数可进行加、减运算 指针和整数进行加、减运算时, 编译程序 总根据所指对象的数据长度对n放大, 在一般微机上, char放大因子为1, int、 short放大因子为2, long和float放大因子为4, double放大因子为8 两个指针变量在一定条件下, 可进行减法运算。设p, q指向同一数组, 则p-q的绝对值表示p所指对象与q所指对象之间的素个数 指针和数组 指针和数组有着密切的关系, 任何能由数组下标完成的操作也都可用指针来 实现, 但程序中使用指针可使代码更紧凑、更灵活 定义了 int a[10], *p; p=a[0]; p指向数组中的第0号元素, 即a[0], 指针变量p中包含了数组元素a[0] 的 地址, 由于数组元素在内存中是连续存放的, 因此,? 我们就可以通过指针变量p 及其有关运算间接访问数组中的任何一个元素 数组名是数组的第0号元素的地址, 因此下面两个语句是等价的 ???? p=a[0]; ???? p=a; 根据地址运算规则, a+1为a[1]的地址,a+i就为a[i]的地址。 下面用指针给出数组元素的地址和内容的几种表示形式。 ??? (1). p+i和a+i均表示a[i]的地址, 或者讲, 它们均指向数组第i号元素, 即 指向a[i]。 ??? (2). *(p+i)和*(a+i)都表示p+i和a+i所指对象的内容, 即为a[i]。 ??? (3). 指向数组元素的指针, 也可以表示成数组的形式, 也就是说,? 它允许 指针变量带下标, 如p[i]与*(p+i)等价。 ??? 假若:????? p=a+5; 则p[2]就相当于*(p+2), 由于p指向a[5], 所以p[2]就相当于a[7]。而p[-3]就相 当于*(p-3), 它表示a[2]。 指针数组 指针是变量, 因此可设想用指向同一数据类型的指针来构成一个数组, 这就是指针数组。数组中的每个元素都是指针变量, 根据数组的定义, 指针数组 中每个元素都为指向同一数据类型的指针。指针数组的定义格式为: ??类型标识 *数组名[整型常量表达式]; int *a[10]; 定义了一个指针数组, 数组中的每个元素都是指向整型量的指针, 该数组由10个 元素组成, 即a[0], a[1], a[2], ..., a[9], 它们均为指针变量。a为该指针数 组名, 和数组一样, a是常量, 不能对它进行增量运算。a为指针数组元素a[0]的 地址, a+i为a[i]的地址, *a就是a[0], *(a+i)就是a[i]。 指针数组 的每个元素是指针变量, 它只能存放地址 指向指针的指针 就是指向指针数据类型数据的指针。 一般与指针数组有关 字符指针 C 编译程序总是自动给该字符串序列的末尾加上一个空字符‘\0’, 用来标志字符串的结束, 因 此一个字符串常量所占的存贮区域的字节数总比它的字符个数多一个字节 把字符串常量存放在一个字符数组之中, 例如: ???????
文档评论(0)