指针学习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 其实代表的是同一个变量,代表是同一块内存空间

浙公网安备 33010602011771号