C语言第五天#S1E21指针

1、指针?什么是指针?从根本上看,指针(pointer)是一个值为内存地址的变量(或数据对象)。正如char类型变量的值是字符,int类型变量的值是整数,指针变量的值是地址

假设一个指针变量名是pa,可以编写如下语句:

pa = &b; // 把b的地址赋给pa,也说把pa指向b

现在pa的值是b的地址。

2、要创建指针变量,先要声明指针变量的类型。而指针变量的类型是和它指向的地址里存放的变量的数据类型一致。

假设想把pa声明为储存int类型变量地址的指针。

int *pa = &a;  // 给出储存在指针pa指向a的地址上的值

使用间接运算符*(indirection operator)找出储存在a中的值。

*取值

pa = &a;  // 把pa指向a,现在pa的值是a的地址。

val = *pa; // 通过*访问pa存放的a的地址,然后这个地址放的是a的值,称为:找出pa指向的值

以上两行代码放在一起相当于下面的语句:

val = a;

上图展示了字符变量a的地址是10000,它存放了字符F,占了一个字节。

指针变量pa的地址是11000-11003,它存放了整型变量10000,是字符变量a的地址,占了四个字节。

&nurse表示变量nurse的地址。

*后跟一个指针名或地址时,*给出储存在指针指向地址上的值。

#include <stdio.h>

int main()
{
	char a = 'F';
	int f = 123;
	
	char *pa = &a;
	int *pb = &f;
	
	printf("a = %c\n",*pa);
	printf("f = %d\n",*pb);
	printf("a = %p\n",pa);
	printf("f = %p\n",pb);
	
	return 0;
 } 

对指针变量做运算

#include <stdio.h>

int main()
{
	char a = 'F';
	int f = 123;
	
	char *pa = &a;
	int *pb = &f;
	
	printf("a = %c\n",*pa);
	printf("f = %d\n",*pb);
	
	*pa = 'C';
	*pb +=1;

	printf("now, a = %c\n",*pa);
	printf("now, f = %d\n",*pb);
	
	printf("size of pa = %d\n",sizeof(pa));
	printf("size of pb = %d\n",sizeof(pb));
	
	return 0;
 } 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值