清华大学出版社 TSINGHUA UNIVERSITY PRESS 第10章指针 10.1 地址和指针的概念 10.2 变量的指针和指向变量的指针变量 10.3 数组的指针和指向数组的指针变量 10.4 字符串的指针和指向字符串的指针变量 10.5 函数的指针和指向函数的指针变量 10.6 返回指针值的函数 10.7 指针数组和指向指针的指针 10.8 有关指针的数据类型和指针运算的小结 习题
第10章 指 针 10.1 地址和指针的概念 10.2 变量的指针和指向变量的指针变量 10.3 数组的指针和指向数组的指针变量 10.4 字符串的指针和指向字符串的指针变量 10.5 函数的指针和指向函数的指针变量 10.6 返回指针值的函数 10.7 指针数组和指向指针的指针 10.8 有关指针的数据类型和指针运算的小结 习题
清华大学出版社 TSINGHUA UNIVERSITY PRESS 指针是C语言中的一个重要的概念,也是C语言的 一个重要特色。正确而灵活地运用它,可以有 效地表示复杂的数据结构;能动态分配内存;能方 便地使用字符串;有效而方便地使用数组;在调用 函数时能得到多于1个的值;能直接处理内存地址 等,这对设计系统软件是很必要的。掌握指针 的应用,可以使程序简洁、紧凑、高效。每一 个学习和使用C语言的人,都应当深入地学习和 掌握指针。可以说,不掌握指针就是没有掌握C 的精华
指针是C语言中的一个重要的概念,也是C语言的 一个重要特色。正确而灵活地运用它,可以有 效地表示复杂的数据结构;能动态分配内存;能方 便地使用字符串;有效而方便地使用数组;在调用 函数时能得到多于1个的值;能直接处理内存地址 等,这对设计系统软件是很必要的。掌握指针 的应用,可以使程序简洁、紧凑、高效。每一 个学习和使用C语言的人,都应当深入地学习和 掌握指针。可以说,不掌握指针就是没有掌握C 的精华
清华大学出版社 TSINGHUA UNIVERSITY PRESS 指针的概念比较复杂,使用也比较灵活,因此初学 时常会出错,务请在学习本章内容时十分小心, 多思考、多比较、多上机,在实践中掌握它。我 们在叙述时也力图用通俗易懂的方法使读者易于 理解
指针的概念比较复杂,使用也比较灵活,因此初学 时常会出错,务请在学习本章内容时十分小心, 多思考、多比较、多上机,在实践中掌握它。我 们在叙述时也力图用通俗易懂的方法使读者易于 理解
清华大学出版社 TSINGHUA UNIVERSITY PRESS 10.1地址和指针的概念 内存用户数据区 为了说清楚什么是指针, 必须弄清楚数据在内 存中是如何存储的, 2000 3 变量i 又是如何读取的。 2002 6 变量j 如果在程序中定义了一 2004 9 变量k 个变量,在编译时就 给这个变量分配内存 3010 2000 变量i_pointer 单元。系统根据程序 中定义的变量类型, 分配一定长度的空间。 例如,一般微机使用 图10.1 的C系统为整
10.1 地址和指针的概念 为了说清楚什么是指针, 必须弄清楚数据在内 存中是如何存储的, 又是如何读取的。 如果在程序中定义了一 个变量,在编译时就 给这个变量分配内存 单元。系统根据程序 中定义的变量类型, 分配一定长度的空间。 例如,一般微机使用 的C系统为整 图10.1
清华大学出版社 TSINGHUA UNIVERSITY PRESS 型变量分配2个字节,对实型变量分配4个字节, 对字符型变量分配1个字节。内存区的每一个字节 有一个编号,这就是“地址”,它相当于旅馆中 的房间号。在地址所标志的内存单元中存放数据, 这相当于旅馆中各个房间中居住旅客一样。请务 必弄清楚一个内存单元的地址与内存单元的内容 这两个概念的区别,如图10.1所示。假设程序已 定义了3个整型变量i、j、k,编译时系统分配2000 和2001两个字节给变量i,2002,2003字节给j, 2004,2005给k。在程序中一般是通过变量名来 对内存单元进行存取操作的。其实程序经过编译 以后己经将变量名转换为变量的地址,对变量值 的存取
型变量分配2个字节,对实型变量分配4个字节, 对字符型变量分配1个字节。内存区的每一个字节 有一个编号,这就是“地址”,它相当于旅馆中 的房间号。在地址所标志的内存单元中存放数据, 这相当于旅馆中各个房间中居住旅客一样。请务 必弄清楚一个内存单元的地址与内存单元的内容 这两个概念的区别,如图10.1所示。假设程序已 定义了3个整型变量i、j、k,编译时系统分配2000 和2001两个字节给变量i,2002,2003字节给j, 2004,2005给k。 在程序中一般是通过变量名来 对内存单元进行存取操作的。其实程序经过编译 以后己经将变量名转换为变量的地址,对变量值 的存取