指针

来源:互联网 发布:淘宝店铺注册单怎么做 编辑:程序博客网 时间:2024/05/08 11:28

指针

有人说过,如果你的C语言除了指针其他的都学得很好,那么你也相当于没有学过C语言,由此可见,指针在C语言当中的的重要性,那么指针究竟是什么东西呢?内存单元的指针和内存单元的内容是两个不同的概念。内存单元的编号也叫做地址。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。总结:对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。使用指针好处:a.为函数提供修改调用变量的灵活手段;b.让函数有多个返回值c.可以改善某些子程序的效率

指针变量

在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。注意:严格意义上说,指针式一个地址,是一个常量,指针变量是存放一个地址,是一个变量。那么如何定义一个指针变量呢?对于指针变量的定义包括三个内容:1、指针类型说明,即定义变量为一个指针变量;2、指针变量名;3、变量值(指针)其一般形式为:类型说明符 *变量名;注意:1)在定义指针式,“*”号表示定义的变量是指针变量,变量的值只能存放地址。2)一个类型的指针只能指向同类型的变量,不能指向其他类型的变量。

初始化和引用

指针变量初始化的方法有两种:定义的同时进行初始化和先定义后初始化
    //定义的同时进行初始化    int a = 4;    int *p = &a;    //先定义后初始化    int a;     int *p;    p = &a;
注意点:1、多个指针变量可以指向同一个地址 int a = 5;2、指针的指向是可以改变的3、指针没有初始化里面是一个垃圾值,我们也成之为一个野指针,如果操作一个野指针:1)可能会导致程序崩溃2)访问你不该访问的数据,所以指针必须初始化才可以访问其所指向存储区域

野指针

没有任何指向向的指针为野指针int *p;

确定类型

*修饰什么,记忆代表是什么指针,原则:先确定变量的类型(根据符号优先级)
    int *p;    int *p[3]; //指针数组 ——> 首先这是一个数组,数组里面存放的是指针(地址)    int (*p)[3];//数组指针 ——> 指向数组(数组第一个元素的地址)的指针
0 0