C语言程序设计(第七章 指针)

本文详细介绍了C语言中的指针概念,包括指针的定义、指针变量的应用、如何通过指针操作变量、作为函数参数传递、引用数组以及使用指针处理数组。实例演示了如何通过指针实现数组元素的访问和排序,以及函数间的参数传递。
摘要由CSDN通过智能技术生成

C语言程序设计(第七章 指针)

一、指针是什么

由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化地称为“指针”。意思就是通过它能找到以它为地址的内存单元。

假如有输入语句:
scanf("%d",&x);
k=x+y;

这种直接按变量名进行的访问,称为**“直接访问”**方式

还可以采用**“间接访问”**的方式,即将变量i的地址存放在另一个变量中,然后通过该变量来找到变量i的地址,从而访问i变量。

i_pointer=&i

(1)将3直接送到变量i所标识的单元中,例如“i=3”。

(2)将3送到变量i_pointer所指向的单元(即变量i的存储单元),例如“* i_pointer=3;”,其中* i_pointer表示i_pointer指向的对象。

指向就是通过地址来体现的,由于通过地址能找到所需的变量单元,因此说,地址指向该变量单元(如同说,一个房间号指向一个房间一样),将地址形象化地称为“指针”。
如果有一个变量专门用来存放另一个变量的地址(即指针),则它称为“指针变量”,指针变量就是地址变量,用来存放地址,指针变量的值是指针

二、指针变量

1、使用指针变量的例子
例题1:通过指针变量访问整型变量
#include<stdio.h>
int main(){
   
    int a=100,b=200;                             //定义整型变量a,b,并初始化
    int * pa,* pb;								 //定义指向整形数据的指针变量pa,pb
    pa=&a;										 //把变量a的地址赋给指针变量pa
    pb=&b;										 //把变量b的地址赋给指针变量pb 
    printf("a=%d,b=%d\n",a,b);					 //输出变量a和b的值
    printf("* pa=%d,* pb=%d\n",* pa,* pb);		 //输出变量a和b的值
    return 0;
}

执行结果:
a=100,b=200
* pa=100,* pb=200
2、怎样定义指针变量
定义指针变量的一般形式为:
类型名 * 指针变量名

int  *pa,*pb;
float * pc;
char * pd;

可以在定义指针变量时,同时对它初始化,如:
int * pa=&a,* pb=&b           //定义指针变量pa,pb,并分别指向a,b
一个变量的指针的含义包括两个方面,一是以存储单元编号表示的纯地址,二是它指向的存储单元的数据类型(如 int,char,float等)。
指向整型数据的指针表示为“ int *”,读作“指向int的指针”或简称“int 指针”。
3、怎样引用指针变量
在引用指针变量时,可能有三种情况:
(1)给指针变量赋值,如:
p=&a					//把a的地址赋给指针变量p

指针变量p的值是变量a的地址,p指向a

(2)引用指针变量指向的变量

如果已经执行(1)的操作,即指针变量p指向了整型变量a,则

printf("%d",* p);

其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。

如果有以下赋值语句:

* p=1;

表示将整数1赋给p当前所指向的变量,如果p指向变量a,则相当于把1赋给a,即”a=1“。

(3)引用指针变量的值,如
printf("%o"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跑不完的脚本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值