首页 > 编程语言 > 详细

C语言中指针和取地址符&的关系

时间:2020-02-15 10:50:28      阅读:106      评论:0      收藏:0      [点我收藏+]

一 概念定义:

  严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址。
  指针原理:

   其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放数据。

为了方便使用,编译器允许我们在写程序的时候,对抽屉进行命名(而不是使用抽屉的编号),这就是变量名。就比如说我们在程序中定义:char C; 这个时候系统会帮我们找一个空闲的抽屉(比方说编号为981的抽屉),命名为

C,用于存放一个字符变量。以后我们在程序里只要使用C这个变量,系统就知道是要对981这个抽屉里的数据进行操作。

     指针是什么呢?

  指针是我们申请一个空抽屉,里面不放数据,而放编号。比如我们申请一个字符指针:char *ch=&C; 这个时候,ch里面放的是C这个变量的地址(也就是981),其中&是取址符,也就是取C这个变量的地址,而不是值。*ch才

是ch指向的值。

 

二 实例解析:

     下面这个例子 很好的说明了两者的关系:

 

 1 #include <stdio.h>
 2 
 3 typedef struct
 4 {
 5     int arr;
 6     int brr;
 7 }test_array;
 8 
 9 test_array i_test;
10 
11 void test(test_array *btest)
12 {
13     btest->brr = 20;
15     printf("btest->brr:%d ",btest->brr);
16 
17 }
18 int main()
19 {
20     i_test.arr = 10;
22     test(&i_test);
24     printf("i_test.arr:%d ",i_test.arr);
25 
26     return 0;
27 }

 

C语言中指针和取地址符&的关系

原文:https://www.cnblogs.com/dylancao/p/12310742.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!