C语言,指针

十一月十六日记录。

指针相关概念

  • 地址与指针

        学指针必须先对内存地址有一个概念。

        系统的内存就好比带有编号的小房间,如果想使用内存就需获得房间的编号。这个编号就是内存的地址。

        当你定义一个变量时,该变量会获得一个地址,通过访问该地址可以找到对应的变量,此时这个变量的地址称为该变量的指针。

  • 变量与指针

        当我们把第一个变量i的地址放到第二个变量中,第二个变量就成为一个指针变量,通常用p表示,此时变量p就“指向”了变量i。

  • 指针变量

        如果有一个变量专门用来存放另一个变量的地址,这个变量就叫做指针变量。

        1、定义一个指针变量

类型说明 * 变量名

int * p

                指针定义后必须进行赋值,否则不能使用。

                不同于普通变量,指针变量只能赋予地址,而不是数值。

                我们用取地址运算符&来获得一个变量的地址,并将其赋给指针变量。

        2、指针变量的赋值

& 变量名

int a = 0;

int * p = &a;

                或者我们也可以这么写

int a = 0;

int * p;

p = &a;

                这时候赋值就不再需要*号。

                注意我们不能将一个数赋值给指针变量。

        3、指针变量的引用

                引用指针变量是对变量进行间接访问的一种形式。

*指针变量

                举个例子

#include<stdio.h>
int main()
{
	int * p,q;
	printf("请输入:\n");
	scanf("%d",&q);
	p = &q;
	printf("输入为:\n");
	printf("%d\n",*p);
	return 0;
} 

        4、“&”和“*”运算符

                &是一个返回操作数地址的运算符,叫做取地址运算符。

                *是单目运算符,叫做指针运算符,作用是返回指定地址内变量的值。

                二者运算符优先级相同,按照从右到左方向结合。

p = &i;

q = *p;

  • 指针的自加自减操作

        不同于普通变量的自加自减,指针变量的自加自减是地址的自加自减,比如一个基本整型指针变量p进行++操作,则p的值增加4(4个字节)。

        指针都安装它所指向的数据类型的直接长度进行自加自减,例如定义为短整型,则自加后p的值增加2(2个字节)。

数组与指针

todo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值