9.C语言指针2

一、认识指针

地址:内存中每一个字节都有一个数字编号,这个编号就是地址。
指针:指针是存储地址的变量
指针在64位系统下是占8个字节,32位系统下是占4个字节。

二、如何定义指针

数据类型 * 变量名;
数据类型:指指针指向变量的数据类型
变量名:就是指针

1.如何给指针赋值
1》初始化

如:int a=4;
              int * p =&a;

2》赋值

如:int a=4;
                int * p;
                p=&a;

//当指针存储了变量a的第一字节的地址,就是指针p指向了变量a

三、什么是*p

对p取:找到p的值,取p个字节,形成一个空间,这个空间就是变量a。
所以p就是a,通过p修改变量a的值和通过a修改变量的值是一样的。

四、指针的作用

通过函数交换a也b中的值
指针在访问不在当前栈(不同函数)内的数据时使用。
一般情况:C语言中用指针的地方在形参,用于接收所传的变量或一维数据。 int * p
如果传变量,则传变量的地址 ,&变量名
如果传数组,则传数组名(数组名即指第一个元素的地址),数组名

五、野指针、泛指针

只定义没赋值的指针叫空指针(野指针),野指针会出现不可预知的错误,为了避免这种错误,将没有赋值的指针,暂赋值为NULL
泛指针:void * 变量名;
可接收任何类型的地址,也可接收任何其它指针。

六、指针和数组的关系

数组源于指针
数组名是数组的首元素第一个字节的地址
当将数组名传递给一个指针时,有两种访问方式:1.以数组形式操作(将指针当成数组使用)2.以指针操作(对指针取*的操作)
区别:
指针是变量;
数组名,首元素地址常量;

七、const:只读属性

前const:修饰P:不可以通过*p改变变量中的值,可以修改p的指向
后const:修饰p:不可以修改p的指向,可以通过p改变变量中的值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,507评论 3 44
  • 1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧...
    金巴多阅读 1,854评论 0 9
  • 第十章 指针 1. 地址指针的基本概念: 在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为...
    坚持到底v2阅读 1,104评论 2 3
  • 时光记得多少 风在城外吹不进来 岁岁叨叨 不见相思却变成了海 窗外片片飞雪 画一笔指尖都是你 走过浮生缥缈 你多情...
    海沙画阅读 216评论 0 0
  • 美好的一天从练习瑜伽开始 瑜伽可以提高我们的觉知度,要学会转变自己的行为模式。 1:给时间做合理规划,排排座,生命...
    康爱凤阅读 258评论 0 0