第10章指针
1 第10章 指针
指针是C中的重要概念和内容,也是C的特色, 但对初学者来说不易掌握。 在C程序设计中指针用得很多,一方面是由于 有时候它是表达一种处理的唯一手段;另一方面使 用它要比使用其他手段更高效。特别对于系统软件 设计而言,该语言功能是必要的。 可以这样说,不能正确、熟练、灵活地使用这 种语言功能就没有很好掌握C 本章详细讨论C语言中指针的概念和使用
2 指针是C中的重要概念和内容,也是C的特色, 但对初学者来说不易掌握。 在C程序设计中指针用得很多,一方面是由于 有时候它是表达一种处理的唯一手段;另一方面使 用它要比使用其他手段更高效。特别对于系统软件 设计而言,该语言功能是必要的。 可以这样说,不能正确、熟练、灵活地使用这 种语言功能就没有很好掌握C! 本章详细讨论C语言中指针的概念和使用
101地址和指针的概念一般以字 1)地址的概念 节为单位 地址是内存单元的唯一编号。地址是何种形式与 所用系统有关。例如: main( int i char cg float f printf(“%p,%p,%p3”,&i,&C,&f) 程序在TC20上运行后的输出为: FFD6. FFD9 FFDA
3 10.1 地址和指针的概念 1) 地址的概念 地址是内存单元的唯一编号。地址是何种形式与 所用系统有关。 程序在TC2.0上运行后的输出为: FFD6 , FFD9 , FFDA main ( ) { int i ; char c ; float f ; printf ( “%p ,%p , %p” , &i, &c, &f ) ; } 一般以字 节为单位 例如:
内存(DS段) 在TC系统中的每个地址: DS:0000 用两个字节存储 用四位十六进制表示 DS: FFD6 是相对于DS段数据段的 DS: FFD 相对地址 DS: FFDs DS: FFD9 表示形式是: DS: FFDA i的地址DS:FFD6H DS: FFDB c的地址DS:FF9H DS: FFDC DS: FFDE f的地址DS: FFDAH 4
4 i 的地址 DS:FFD6H c的地址 DS:FFD9H f的地址 DS:FFDAH … DS: 0000 i DS: FFD6 DS: FFD7 DS: FFD8 DS: FFD9 DS: FFDA DS: FFDB DS: FFDC DS: FFDE 内存(DS段) … c f 在TC系统中的每个地址: 用两个字节存储 用四位十六进制表示 是相对于DS段(数据段)的 相对地址 表示形式是:
记住: 在C中地址是一种特别的数据类型(指针类型) 不同于整型量,二者不相容。 ■&是单目运算符;优先级仅低于小括号;结合方 向自右向左; ■&的操作数只能是变量名和数组元素名不能是 常量、表达式和 register型变量名
5 记住: 在C中地址是一种特别的数据类型 (指针类型) , 不同于整型量,二者不相容。 & 是单目运算符; 优先级仅低于小括号;结合方 向自右向左; &的操作数只能是变量名和数组元素名,不能是 常量、表达式和register型变量名