欢迎来到天天文库
浏览记录
ID:40841610
大小:1.41 MB
页数:75页
时间:2019-08-08
《C语言第8章构造数据类型(指针1)(指针的基本概念和数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、11第八章指针2主要内容1、概述2、指针与变量3、指针和数组4、指针与字符串5、数组、指针作为函数的参数6、指针与函数7、指针数组3地址运算符&功能:取变量地址运算符获得操作数的地址;单目运算符;操作数应为各种类型的内存变量、数组元素、结构体成员等;操作数不能是表达式、常量;例:&a为变量a的地址。34指针运算符*功能:取指针所指的变量的值获得指针指向的内存数据又称“间接访问运算符”单目运算符,自右向左结合,优先级较高操作数为具有指针(地址)意义的值56789主要内容1、概述2、指针与变量3、指针和数组4、指针与字符串5、数组、指针作为函数的参数6、指针与函数7、指针数
2、组10第一节指针概述1、地址和指针2、访问变量的方式3、数据存取方式与指针10111、地址和指针地址:计算机内部存储器——内存,是一系列连续的单元排列在一起,每一个单元有一个编号,编号从0开始,按字节编址,顺序递增。这个编号称为地址。200020022004……地址内存单元内存字节12变量:在程序中所定义的变量,编译系统会根据变量的类型,分配一定长度的存储空间。例:inta=6;/*2个字节*/;charc=‘a’;/*1个字节*/;floatb=5.3;/*4个字节*/;doublef=3.4;/*8个字节*/;13变量在内存中的存放:inta=6;2000charc
3、=‘a’;2002floatb=5.3;doublef=3.4;20032007697……2015200120062014标注一个变量的地址用低字节的地址编号14指针指针类型就是用来存放地址的变量类型如果我们希望变量p用来存放地址值,那么就必须将p定义为指针类型。反之,如果p为指针类型的变量,p只能存放地址值,而不能存放其他类型的数据。152、访问变量的方式在程序中是通过变量名来使用变量的值。例如:printf(“%f”,b);C语言访问变量的方式15直接访问方式按变量的地址存取变量的值。间接访问方式按变量的地址的地址存取变量的值。161、直接访问方式按变量的地址存取变
4、量的值。例:scanf(“%d”,&a);printf(“%d”,a);1632000&a:取变量a的地址执行过程:先找变量a的地址,例如2000;然后从这个地址开始取出两个字节中的数据,如变量a的值为3,并输出。a17间接访问方式按变量的地址的地址存取变量的值。例:假设指针型变量pa的地址为1000,用变量pa来存放变量a的地址&a,此时pa的值为2000。如果要得到a的值,可以先访问变量pa,得到pa的值为2000(变量a的地址),再通过地址2000找到所指存储单元中的值(a的值)。18例:假设指针型变量pa的地址为1000,用变量pa来存放变量a的地址&a,此时p
5、a的值为2000。如果要得到a的值,可以先访问变量pa,得到pa的值为2000(变量a的地址),再通过地址2000找到所指存储单元中的值(a的值)。183指针变量paa2000间接访问&a:取变量a的地址20001000193、数据存取方式与指针19voidmain(){inti,j,k,*i_pointer;scanf(“%d%d”,&i,&j);k=i+j;printf(“%d”,k);i_pointer=&i;k=*i_pointer;printf(“%d”,k);}按变量存取方式可称“直接访问”方式按地址存取方式可称“间接访问”方式…………存放整数存储单
6、元的地址2000200420183000存放整数值存储单元地址变量3ijki_pointer692000320第二节指针与变量1、指针变量的定义2、指针变量的赋值3、指针变量的引用4、指针作为函数的参数20211、指针变量的定义定义格式指向的类型说明符*指针变量名;例:int*pt;*—指针标记。pt—指针变量名int—pt是指向整数类型的指针变量。2122定义指针变量时,需指明:指针变量所指向的变量的类型;指针变量名;在指针变量名之前,写一“*”;2223指针变量可以指向任意类型;例:定义指针变量,分别指向:整数类型的变量;实数类型的变量;双精度类型的变量;字符类型的
7、变量;241.定义指针变量,指向整数类型;int*p12.定义指针变量,指向实数类型;float*p14.定义指针变量,指向字符类型;char*p43.定义指针变量,指向双精度类型;double*p35.除此之外,还可以定义指向数组的指针变量、指向函数的指针变量、指向结构体的的指针变量等。25指针变量初始化:inta;int*p=&a;赋值语句:inta;int*p;p=&a;252、指针变量的赋值:注意:1.不允许把一个数值赋给指针变量int*p;p=1000;错误!!2.被赋值的指针变量前不能再加*说明符*p=&a;错误!!262、指
此文档下载收益归作者所有