- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、基础
1.指针数组和数组指针
位机器上,只要是指针就占 个字节
32 4
指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。
它是 储存指针的数组 的简称。
“ ”
数组指针:首先它是一个指针,它指向一个数组。在 位系统下永远是占 个字节,至于
32 4
它指向的数组占多少字节,不知道。它是 指向数组的指针 的简称。
“ ”
与指针指向的内容和内容的大小无关。
在不同的操作系统及编译环境中,指针类型占用的字节数是不同的。一般而言,
编译生成16 位的代码时,指针占2 个字节
编译生成32 位的代码时,指针占4 个字节
编译生成64 位的代码时,指针占8 个字节
简言之:
指针就是一个整数。
2.按位运算
按位与 : 均为1时,结果位才为1
| 按位或: 两个有一个为1才为1
^ 按位异或 :相异时,结果为1
均以补码方式运算,整数与其补码相同
3. ANSI C标准中有几个标准预定义宏:
__LINE__:在源代码中插入当前源代码行号;
__FILE__:在源文件中插入当前源文件名;
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
指示系统是否含有服从标准 (ANSI-compliant)的头文件 (以及可能的C库函数)。
__cplusplus:当编写C++程序时该标识符被定义。
4. 多维数组地址的表示方法
一、多维数组地址的表示方法
设有整型二维数组a[3][4]如下:
0 12 3
4 5 6 7
8 9 10 11
设数组a 的首地址为1000,各下标变量的首地址及其值如图所示。
C
在前面曾经介绍过, 语言允许把一个二维数组分解为多个一维数组来处理。
a a[0] a[1] a[2]
因此数组 可分解为三个一维数组,即 , , 。每一个一维数组又含
a[0] a[0][0] a[0][1] a[0][2] a[0][3]
有四个元素。例如 数组,含有 , , , 四个元素。数
a 0
组及数组元素的地址表示如下: 是二维数组名,也是二维数组 行的首地址,
1000 a[0] 1000 *(a+0)
等于 。 是第一个一维数组的数组名和首地址,因此也为 。
*a a[0] a[0]0 1000
或 是与 等效的, 它表示一维数组 号元素的首地址。 也为 。
a[0][0] a 0 0 1000 a a[0] *
是二维数组 的 行 列元素首地址,同样是 。因此, , ,
(a+0) *a a[0][0] a+1 1 1008
, , 是相等的。同理, 是二维数组 行的首地址,等于 。
a[1]
文档评论(0)