C语言—指针

指针:

①指针是地址

②指针变量用来存放地址

#include<stdio.h> 
int main()
{
	int a=10;		//a在内存中要分配空间--4个字节 
	printf("%p\n",&a);		//%p专门用来打印地址的,打印a的地址
	
	int *pa=&a;		//pa是用来存放地址的,&a(表示取a的地址,&是取址符) 
					//*说明pa是指针变量
					//int说明pa执行的对象是int类型的 

	*pa=20;		//*解引用操作 | *pa就是通过pa里边的地址,找到a	
	printf("%p\n",pa);     //打印pa的地址
	printf("%d\n",a);
	return 0;
}

输出结果:

 

1、指针类型决定了:指针解引用的权限多大

2、指针类型决定了:指针向前或向后走一步有多大(距离)

//整形指针+1 相当于跳过四个字节

//字符指针+1 相当于跳过一个字节

 

 

指针的大小:

32位编译器

指针需要多大的空间,取决于地址的存储需要多大空间

32位 32 bit-->4 byte

64位 64 bit-->8 byte

 

野指针

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

野指针成因

1、指针未初始化

2、指针越界访问

3、指针指向的内存释放

避免野指针方法:指针要么是空指针要么就是指向有效的地址

二级指针

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZHANGZH-

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

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

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

打赏作者

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

抵扣说明:

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

余额充值