指针重要性

       指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;指针极大地丰富了C语言的功能。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时,指针也是C语言中最为困难的一部分。

       指针的基本概念:

内存单元的编号也叫地址。根据内存单元的编号或地址可以找到所需的内存单元,通常把这个地址称为指针。

注意:

        但是这里的内存单元的指针和内存单元的内容是两个不同的概念。

        举个例子来说就是银行卡上的账号就是内存地址,是存单的指针,卡里面的存款数就是存单的内容。

       1:指针是一个地址,是一个常量,指向的是个类型:

       2:指针指向的是地址,地址指向的是内容:

指针的定义和赋值

其一般形式:

类型说明符  *变量名;

例如:  int  *p;      //一个指向整形变量的指针    变量名是p

             float *p1;//一个指向浮点型变量的指针   变量名是p1

指针的初始化方法有两种: 定义的同时进行初始化和先定义后初始化

1) 先定义后赋值:
int a;
int *p;
p = &a;
2) 定义的同时赋值:
int a = 5;
int *p = &a;

3)把指针初始化为NULL

int  *p=NULL;

int  *q=0;

注意:int *p;    p = 10;  //p指向的地址是10
            int *p;   *p = 100;  //p指向的地址里面的数据是100
            int *p;   *p = &a;  //p指向的地址里面的数据是a的地址
%p输出指针里面存储的地址值。
4)指针没有初始化里面是一个垃圾值,这时我们称这是一个野指针,

如果操作一个野指针

         1) 可能会导致程序崩溃

         2)访问不该访问的数据

所以指针必须先初始化才可以访问其指向的存储区域
指针的唯一作用:存储地址,访问对应的存储空间:取值或复值。

使用 “ * ” 来获取指针对应存储区域的内容

两个相关的运算符:

   & :取地址运算符                  

   *  :指针运算符(间接访问运算符)    

一般形式:

&变量名

*指针变量名   //获取指针变量指向的存储空间的内容。

<span style="font-size:14px;">#include "stdio.h"
void caculator(int x,int y,int *add,int *jian,int *cheng,float *chu){
    
    //在函数的内部访问了主调函数中的变量值
    *add = x+y;
    *jian = x-y;
    *cheng = x*y;
    *chu = x/(float)y;
    
}
int main(int argc, const char * argv[]) {
    
    int add=0;
    int jian=0;
    int cheng=0;
    float chu=0.0f;
    
    caculator(12, 4, &add, &jian, &cheng, &chu);
    
    printf("add = %d\n",add);
    printf("jian = %d\n",jian);
    printf("cheng = %d\n",cheng);
    printf("chu = %.2f\n",chu);
    
    return 0;
}</span>