C语言基础 指针与数组


一、数据的地址和通过地址访问数据

1、基本的数据类型的地址

int a;==>&a//变量a的地址

2、数组的地址

int a[5]; ==>&a,a,&a[0]

3、函数的入口地址

函数名 或者 &函数名

 

4、通过地址去访问内存中的数据

通过间接访问运算符*访问内存中的数据

 

 

二、指针的基本概念

1、定义:

变量的地址称为变量的指针。

存放指针的变量称为指针变量,指针也是一个变量,它存储其他变量的地址。

【注意】每个指针变量只能指向一种特定类型的变量。

 

2、声明和初始化、赋值

详见4.c

3、使用指针访问内存单元

指针前面加*,表示指针所指向的内存单元

4、指针变量的大小(占用内存空间的大小)

与指针所指向的数据类型的大小没有关系,与操作系统的位数有关系。

指针是一个无符号整数。

5、void  指针

void *p:通用指针,代表可以指向任意类型。

 

【注】使用指针访问内存的方法

   1、指针在声明和赋值的时候一定要正确,明确指针到底指向谁。

   2、根据指针的指向关系,画出内存单元图,找出指针所指向的内存单元。

 

三、指针与数组(掌握)

数组名代表数组中第一个元素的地址,可以将数组名赋值给与其相同数据类型的指针。

使用数组名访问数组,与使用这个指针访问数组,效果一样。

 

 

四、指针与函数(掌握)

1、指针作为函数的参数,传递的是地址,通过地址间接访问内存单元,可以修改指定的内存单元。

      练习:

     1、使用函数交换两个整型变量,调用函数结束后,两个    整型变量的值真的交换了。

     2、写一个函数sumAndMinus,可以同时计算2个整型变量的和与差,函数执行完毕之后,返回和与差。

参见11.c

2、数组作为函数的参数

数组作为函数参数,实际上需要传递数组首地址,即这个参数是指针类型。

 

3、指针作为函数的返回值

参加13.c

 

五、【扩展】指针的运算(了解)

详见14.c

1、加

加1:加上指向的数据类型的大小。

两个指针相加:无意义。

2、减

减1:减去指向的数据类型的大小

两个指针相减:表示两个指针所指向的变量之间相差的元素个数(常常用在数组中)

3、比较

两个指针的比较,实际上是两个指针所指向的变量的地址进行比较(两个指针所指向的数据类型必须相同,否则比较无意义)。

六、【扩展】const修饰的指针(了解)

详见15.c

1、const关键字

常量 

(1)const 数据类型 变量名=变量初值;

(2)数据类型 const 变量名=变量初值;

【注】常量在声明的同时必须初始化,否则无意义。

2、const修饰指针

(1)const int *a;和int const *a;

a的指向可以修改;   a指向的内容不能修改

(2)int *const a;

a的指向不能修改; a指向的内容可以修改

(3)const int * const a;

a的指向不能修改; a指向的内容也不能修改

 

【注】const 修饰谁,谁不能修改

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值