12.指针用法简单介绍【郝斌C语言入门学习】

指针

指针是C语言的灵魂。指针对后期学习数据结构数据库javaC++、C#有很大的影响。

指针就是地址地址就是内存的编号。指针变量,就是地址变量。

指针热身

例题1:

 1 # include <stdio.h>
 2 int main(void)
 3 {
 4     int * p;//p是变量的名字,int * 表示p变量存放的是int类型变量的地址
 5     int i = 3;
 6     p = &i;//&取地址符
 7     //p = i;//错误,因为;类型不一致,p只能存放int类型变量的地址,不能存放int变量的值
 8     //p = 55;//错误同上
 9     return 0;
10 }

例题2:

 

 1 # include <stdio.h>
 2 int main(void)
 3 {
 4     int * p;//p是变量的名字,int * 是数据类型,int * 表示p变量存放的是int类型变量的地址
 5             //注意:int * p;不表示定义了一个名字叫做*p的变量
 6             //int * p;应该这样理解:p是变量名,p变量的数据类型是 int *类型,所谓int * 类型实际就是存放int变量地址的类型
 7     int i = 3;
 8     int j;
 9     p = &i;//&取地址符
10     printf("%d\n", i);
11     printf("%p\n", p);
12     printf("%d\n", *p);
13     /*
14         1.p保存了i的地址,因此p指向i
15         2.p不是i,i也不是p,更准确地说,修改p的值不会影响i的值,修改i的值不会影响p的值。
16         3.如果一个指针变量指向了某个普通变量,则
17                  *指针变量 就完全等同于 普通变量
18             例子:
19                 如果p是个指针变量,并且p存放了普通变量i的地址,
20                 则p指向了普通变量i,*p 就完全等同于 i
21                 或者说:在所有出现*p的地方都可以替换成i,在所有出现i的地方都可以替换成*p
22                 *p就是以p的内容为地址的变量
23     */    
24     j = *p;//相当于 j = i;
25     printf("i = %d, j = %d\n", i, j);    
26     return 0;
27 }
28 /*
29     在vc++6.0中的输出结果:3
30                            0061FF24
31                            3
32                            i = 3, j = 3
33 */

 

总结:指针就是地址,地址就是指针。地址就是内存单元的编号。

   指针变量就是存放地址的变量。指针变量就是存放指针的变量。

   指针和指针变量是两个不同的概念,但是要注意:通常我们叙述时会把指针变量简称为指针,实际他们含义并不一样。

指针的重要性

  指针可以表示一些复杂的数据结构

  快速地传递数据

  使函数返回一个以上的值

  能直接访问硬件

  能够方便地处理字符串

  是理解面向对象语言中引用的基础

总结:指针是C语言的灵魂。

 

posted @ 2024-08-12 12:53  java帝国  阅读(25)  评论(0)    收藏  举报