指针---学习笔记

上课笔记


一、指针是什么

1、指针是内存中最小单元编号,就是地址

2、平时口中说的指针,通常是指指针变量,是用来存放内存地址的变量

总结:指针就是地址,口语中说的指针是指针变量

#include<stdio.h>
int main()
{
    
     int a =10;  //在内存开辟一片空间
     int *p =&a; //对a变量取出他的地址,用操作符& 
                 //a变量占用4个字节的空间,这里是将a的4个字节中的第一个子杰的地址存放p变量中,p就是一个指针变量

     return 0;
}

指针是用来存放地址的,地址是唯一标示一块地址空间的

指针大小:在32位平台是4字节,在64位平台是8字节

二、指针和指针类型

变量有不同的类型,整形,浮点型等。指针也是有类型的。

int num =10;
p = &num

要把&num保存道p中,p是一个指针变量,那他应该有类型

char *pc =NULL;
int *pi =NULL;
short *ps =NULL;
long *pl =NULL;
flong *pf =NULL;
double *pd =NULL;

到这里我们可以看到,指针的定义方式是:type + *。

char*类型的指针是为了存放char类型变量的地址

short*类型的指针是为了存放short类型变量的地址

int*类型的指针是为了存放int类型变量的地址

2.1指针加减整数

#include<stdio.h>
int main()
{ 
	int n = 10;
	char* pc = (char*) & n;
	int* pi = &n;
	printf("%p\n", &n);
	printf("%p\n",pc);
	printf("%p\n", pc + 1);
	printf("%p\n", pi);
	printf("%p\n", pi + 1);
	return 0;
}

指针类型决定了指针向前一步或者向后一部有多大

2.2指针的解引用

#include<stdio.H>
int main()
{ 
    int n = 0x11223344;
    char *pc =(char *)&n;
    int *pi = &n;
    *pc = 0; //需要在调试过程中观看内存变化
    *pi = 0;
     return 0;
}

指针类型决定了,对指针解引用的时候有多大权限,例如,char*的指针解引用只能访问一个字节,而int*的指针的解引用可以访问4个字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

太极不打烊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值