指针学习1

指针是什么? 指针就是一个地址
地址代表的就是一块内存空间
指针变量是什么? 用来存放指针
#include <stdio.h>    
#include <stdlib.h>
 main() 
{    


      int i =5;// 定义一个int 类型的变量i 值 =5 
      //%#X表示16进制的地址占位符
        printf("i的地址 %#X\n",&i); 

      //获取i的地址,&i就是一个指针
      // &i; 
      //定义一个指针变量,数据类型*
      int* p ; // 指针变量 定义一个int* 类型的变量p  
      //其他两种表示方式:int *p, int * p;


      p = &i;  // 就是把i的指针赋给指针变量p  ,现在指针变量p里面存放的内容(数据)  就是i的地址  


      printf("p里面的内容为(i的地址) %#X\n",p); 

      //*号 操作符
      // *号的几种含义  
      //1 . *号放在某种数据类型的后面,代表就是这种数据类型的指针  int*   float* 
      //2 . *号 代表一个乘法符号  3*5  = 15;
      //3 .  *号放在一个指针变量的前面 -> 代表取这个指针变量所存放的地址里面对应的数据  
       printf("i=%d\n",i);
       printf("*p的值%d\n",*p); 

       // 改变p的值 会不会影响i的值? 
        //p = NULL;
       // printf("i=%d\n",i);//5

       // 改变i的值 会不会影响p的值? 
       // i = 100;
       //  printf("p里面的内容为(i的地址) %#X\n",p); 
       // 通过上述实验 p和 i 是两个不同的变量 ,改变i的值 不会影响 p的值,同理,更改p的值 也不会影响i的值  

       // 更改*p的值 会不会影响i的值  
      // *p  = 88;
       // printf("i=%d\n",i); //88

       // 更改i的值 会不会影响 *p的值呢?
      // i = 99;
      // printf("*p的值%d\n",*p);  //99

        //*p 和i 其实代表的是同一个变量,代表是同一块内存空间  


       system("pause");    // 调用windows下系统的命令 让程序暂停执行  方便观察程序的执行结果  
}

从代码中我们可以知道:

  • 指针就是地址,而c语言中我们在变量前面加上&符号就可以到地址也就是指针如:int i=9;那么i的指针表示方式是&i

  • 指针变量就是用来存放指针的一个变量,如:数据类型* 变量名;如:int * p 这样就是一个指针变量,将我们上面的&i=p这样我们就将i的指针放在了指针变量p中

  • 得到指针变量中的值使用符号*,例如我们将上面指针变量p的指针i的值取出来表示就是:*p

  • *p 和i 其实代表的是同一个变量,代表是同一块内存空间

posted @ 2022-07-27 17:51  星明勇往直前  阅读(36)  评论(0)    收藏  举报