03-指针的基本概念及定义课件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.1 指针的基本概念及定义8.1.1 指针的基本概念及定义8.1.2 指针变量的定义方法
指针的基本概念
问题1:对数组元素的访问
#include
int main()
{
int a[10], i;
for(i=0;i<10;i++)
scanf("%d", &a[i]);
for(i=0;i<10;i++)
printf("%3d",a[i]);
return 0;
}
12345 6 78910
a
a[0] a[1] a[9]
问题2:
函数参数的传递
#include
void swap(int m , int n ) {
int t;
t=m;
m=n;
n=t;
}int main( )
{
int a,b;
scanf("%d%d", &a , &b ); swap( a , b );
printf("%d,%d\n\n", a, b); return 0;
}
内存:就是内部存储器,是由存储单元组成的,它是线性连续的。存储单元的最小单位是字节。
内存地址按字节编号,其字长一般与主机相同。32位机使用32位地址,最多支持232字节内存(4G)。00000000
.
.
.
FFFFFFFF
4G内存
内存和地址
变量地址:系统分配给变量的内存单元的起始地址
程序中:int i; float k;
i k
i 的地址
k 的地址
…...
…...
00FF003C 0012FF440012FF40
…...
…...
通过变量名访问变量---直接寻址
int k ,s;
scanf(“%d”,&k);
变量的存取方法:直接寻址和间接寻址
通过指针对变量的访问-间接寻址int*pk;
pk=&k;
5
&k int*pk;
int k;
printf(“%d”,*pk);
5
s=3*k;
指针变量定义的一般形式:类型标识符*标识符
[例]:
int *p1;float *p2;
作用:定义变量为指针类型,使之专门用于存放所定义类型变量的地址。
指针所指的变量的类型
指针变量名
定义了一个指向整型的指针变量
定义了一个指向单精度实型的指针变量
指针声明符
指针变量的定义方法
说明:
* 用于定义指针变量,但指针变量名不包括*。
如:int*p; float *q;
定义的指针变量为p, q ,并不是*p,*q。
一个指针变量只能指向同一类型的变量。
如:p 只能用于指向整型变量
q 只能用于指向实型变量
无论指针变量指向何种类型,指针变量本身都是整型的,指针变量本身也有自己的地址,占四个字节的存储空间。