第8章指针指针是C语言的重要数据类型,也是C语言的重要特征和精华所在。指针运用不当的后果:指针概念不清、滥用指针,将降低程序的可读性。指针使用不当,使指针指向意料不到的地方,将使程序失控。严重的将导致系统破溃。C程序设计中使用指针的意义——使程序简洁、紧凑、高效有效地表示复杂的数据结构动态分配内存有效方便地使用字符串和数组在函数之间传送数据,得到多于一个的函数返回值正确掌握指针的概念、正确使用指针十分重要!俊兵忽昆嗡陋廊韩植径休阔惭贵午悉椽丛城技锻羽失哇折致直沛趋渔试弧第8章指针第8章指针1main(){floatx;inty;…}变量的两个物理意义变量的地址200020012002200320042005…xy变量的内容变量的存储单元是在编译时(对静态存储变量)或程序运行时(对动态存储变量)分配的。——以字节为单位的一片连续的存储空间。内存单元——一个字节称为一个内存单元内存地址——内存单元的编号(即字节的编号)称为内存地址,简称地址。在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,为了正确地访问这些内存单元,必须为每个内存单元编号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。内存地址是连续的。···1015101410131012···321···9···↓↓↓↓↓↓↓内存地址:内存单元:变量a的内存空间——4个字节,1个字节由8位(bit)组成。内存单元的内容变量a地址示意图变量的地址?通过变量名,可以存取(访问)变量值。变量——先定义后使用变量——实质上代表了内存中的每个存储单元如:inta=9;变量a具有4个属性:变量的名称——a;变量的数据类型——int;变量的初始值(内容)——9;变量的地址——用&a来表示。:由于计算机操作系统的复杂性,每次执行同样的程序,为同一个变量分配的内存空间并不固定。/*显示变量的地址*/#include<>voidmain(){ inta; printf("请输入一个整数:"); scanf("%d",&a); printf("内存地址——%d,内存的内容——%d\n",&a,a);}运行结果1:请输入一个整数:9内存地址——1245052,内存的内容——9Pressanykeytocontinue运行结果2:请输入一个整数:789内存地址——1245052,内存的内容——789Pressanykeytocontinue内存的内容不同。内存地址相同!···1015101410131012···321···9···↓↓↓↓↓↓↓内存地址:内存单元:变量a的内存空间——4个字节,1个字节由8位(bit)组成。——变量在内存中总占用几个连续的字节,开始字节的地址,就是变量的地址。——一个变量的地址称为该变量的指针,指针就是变量的地址。指针变量——若一个变量专用于存放另一个变量的地址(指针),则该变量称为指针变量。指针变量就是专门用来保存指针的一类变量。···1015101410131012···321···9···↓↓↓↓↓↓↓内存地址:内存单元:变量a的内存空间——4个字节,1个字节由8位(bit)组成。内存单元的内容变量a地址示意图变量a的地址···3005300430033002···321···1012···↓↓↓↓↓↓↓内存地址:内存单元:指针变量pa的内存空间——4个字节,1个字节由8位(bit)组成。内存单元的内容若指针变量pa存放的是变量a的地址,则:变量pa的地址指针变量也需要存储单元,它本身也有地址。由指针变量pa的值(地址,图中为1012)就可以找到变量a,(访问)方式直接存取(访问)方式:通过变量名或其地址(如a或&a)访问变量的方式叫直接访问方式;间接存取(访问)方式:通过指针变量(如p)访问它指向的变量(如a)的方式叫间接访问方式。1012指针变量pa:地址3002变量a的值指向变量a:地址1012变量地址(指针)指针变量
第8章 指针 来自淘豆网www.taodocs.com转载请标明出处.