*初阶指针*

目录

一.指针定义

二.指针大小

三.指针类型

四.指针运算

1.指针+整数

2.指针-指针

3.指针的关系运算

五.野指针


一.指针定义

指针:是内存中一个最小单元的编号,也就是地址,地址在C语言中叫做指针,平时说的指针是指针变量,用来存放地址。
int *pa =&a (int *类型pa指针变量&a地址)                                                                                     &a得到的是a的地址,本质上是a的第一个字节

二.指针大小


指针大小:在不同平台上指针大小不同,在同一平台上,不同类型的指针大小相同
在32位地址线的平台上指针大小为4个字节:4*8=32

在64位地址线的平台上指针大小为8个字节:8*8=64

三.指针类型

char* (指向字符的指针) )  int* (指向整型的指针)  函数指针(指向函数的指针)等

指针类型具有特殊意义

类型会决定引用的时候的步长大小    

void*无具体类型的指针,所以它可以接收任何类型的地z址,就是不能直接解引用与进行加减运算

四.指针运算

1.指针加整数

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p =arr;
	for (i = 0; i < 10; i++)
	{
		printf("%d  ", *p);
        p++;
                                }
    return 0;
  }

1.arr表示首元素1的地址

2.p++,指针加1,指针指向的地址会跳过一个arr(int* p =arr)大小,即4个字节,会指向下一个元素,这里数组里面的值依次打印。

2.指针减指针

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p = arr;
	int i = 0;
	printf("%d", (p+5)-(p+3));
	return 0;

}

1.p+5指向arr中的6,p+3指向arr中的4

2.指针减指针表示中间相差了多少个元素,这里结果为2

五.野指针

1.野指针的概念:
野指针就是指针指向的位置不可知的。(随机的、不正确的、没有明确限制的)

2.野指针的三种情况

指针未定义,指针越界访问,指针指向的空间释放

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值