c语言比较xy大小指针,第6章指针c语言教学.ppt

本文详细介绍了C语言中的指针概念,包括指针变量的地址、直接访问和间接访问方式。指针变量是存储内存地址的特殊变量,使用`*`符号表示指向的变量。在定义指针变量时需指定基类型,并通过`&`运算符获取变量地址。指针变量可以作为函数参数传递,实现对变量的间接操作。同时,文章还强调了指针变量的正确使用和初始化,以及`&`和`*`运算符的优先级和作用。
摘要由CSDN通过智能技术生成

第6章指针c语言教学

第六章 指针 6.1 指针变量 地址和指针的概念 为了说清楚什么是指针,必须弄清楚数据在内存中是如何存储的,又是如何读取的。如果在程序中定义了一个变量,在编译时就给这个变量分配内存单元。系统根据程序中定义的变量类型,分配一定长度的空间。例如,一般微机使用的C系统为整型变量分配2个字节,对实型变量分配4个字节,对字符型变量分配1个字节。内存区的每一个字节有一个编号,这就是“地址” 。在地址所标志的内存单元中可以存放数据。 6.1 指针变量 1.直接访问方式:按变量地址存取变量值的方式。 i->2000,2001 j->2002,2003 k->2004,2005 ① printf(“%d”,i); ② scanf("%d",&i); ③ k=i+j; 6.1 指针变量 2.间接访问方式:将变量i的地址存放在另一个变量中,然后通过该变量访问变量i。 按C语言的规定,可以在程序中定义整型变量、实型变量、字符变量等,也可以定义这样一种特殊的变量,它是存放地址的。 i_pointer=&i; 6.1 指针变量 6.1 指针变量 如前所述,变量的指针就是变量的地址。存放变量地址的变量是指针变量。为了表示指针变量和它所指向的变量之间的联系,在程序中用“*”符号表示“指向”,例如,i_pointer代表指针变量,而*i_pointer是i_pointer所指向的变量,见图6.3。 6.1 指针变量 指针变量的定义 定义指针变量的一般形式为: 基类型 *指针变量名; 指针变量的基类型用来指定该指针变量可以指向的变量的类型。 如: int i,j; //普通变量 int *pointer_1,*pointer_2; 6.1 指针变量 用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向一个变量: pointer_1=&i; pointer_2=&j; 6.1 指针变量 注意: 指针变量前面的“*”,表示该变量的类型为指针型变量。 注意:指针变量名是pointer_1、pointer_2,而不是*pointer_1、*pointer_2。这是与以前所介绍的定义变量的形式不同的。 (2) 在定义指针变量时必须指定基类型。一个指针变量只能指向同一个类型的变量。 float a; int *pointer_1; 错误 pointer_1=&a; 6.1 指针变量 指针变量的初始化 指针变量可以在定义的同时给其赋初值,称为指针变量的初始化。 例如: int x = 3; int *p1 = &x;? int * p2 = p1;? 6.1 指针变量 指针变量的引用 指针变量中只能存放地址(指针),不要将一个整型量(或任何其他非地址类型的数据)赋给一个指针变量。 pointer_1=100;  有两个有关的运算符: (1)  &: 取地址运算符(单目)。“&”后面能接任何类型的变量,作用是取得变量所占用的存储单元的首地址。 (2)  *: 指针运算符(或称“间接访问”运算符、单目) 。“*”后面只能接指针变量,作用是取指针变量所指向的地址中存储的内容,即通过指针变量来间接访问它所指向的变量。 例如:&a *p 6.1 指针变量 例6.1:用指针变量进行输入和输出 6.1 指针变量 6.1 指针变量 如果已执行了语句:pointer_1=&a; (1) “&”和“*”两个运算符的优先级别相同,但按自右而左方向结合。 例如:&*pointer_1?&a (2) *&a ? *pointer_1 ?a (3) (*pointer_1)++ ? a++ 6.1 指针变量 6.1 指针变量 6.1 指针变量 指针变量作为函数参数 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。指针作函数参数时,形参是指针,实参可以是指针或变量的地址,此时形参和实参指向同一变量。 例6.4:对输入的两个整数按大小顺序输出。 6.1 指针变量 6.1 指针变量 注意:以下做法是错误的 6.1 指针变量 (3) void swap(int *p1,int *p2) { int *p; p=p1;  p1=p2;  p2=p; } //此函数也不能交换值 练习 练习 练习:2.给一个一维数组输入10个数,要求输出这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值