码迷,mamicode.com
首页 > 编程语言 > 详细

C语言指针

时间:2014-08-16 17:04:00      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   数据   ar   2014   amp   

变量的 直接访问 方式

     按变量的地址(变量名/变量的外号) 存取变量的值

bubuko.com,布布扣

变量的 间接访问 方式

     将变量的地址放在另一个内存单元中,先到另一个内存单元中取得变量的地址,再由变量的地址找到变量并进行数据存取

 

bubuko.com,布布扣 

bubuko.com,布布扣

变量Pointer是一个指针变量(本身是一个变量),它存储的是另一个变量的内存地址(i的内存地址),我们说pointer指向i

一个变量存储了另一个变量的内存地址,我们说它指向i(另一个变量)

什么是指针

指针的概念:一个变量的地址称为该变量的指针

指针变量:专门用于存储其它变量地址的变量

指针与指针变量的区别,就是变量值与变量的区别

bubuko.com,布布扣

指针变量的三要素

  • 指针变量的类型 :和其所指变量的类型一致
  • 指针变量的值:另一个变量在内存的地址
  • 指针变量的名字:起法同普通变量

指针变量的赋值:

float *p1=p1的地址

方式一:指针变量名 =&变量名; &->取地址符

方式二:通过另一个指针变量赋值

int i ,*p1,*p2; //声明一个变量i,指针p1和指针p2

赋值方式一:p1=&i

赋值方式二:p2=p1

bubuko.com,布布扣

指针的运算

1、算术运算

例如:int *p,i;

char *q,c;

p=&i;

q=&c;

内存地址示意义如下:

bubuko.com,布布扣

int 型占据 2个字节,char型占据1个字节

求: p++ ,q++

p++ 即 i的地址移1位(2个字节)

bubuko.com,布布扣

q++,即c的地址移动1位(1个字节)

bubuko.com,布布扣

2、比较运算

数组的名称就是一个指针

bubuko.com,布布扣

3、两个运算符

*:求其后内存地址中的内容

&:求变量的内存地址

bubuko.com,布布扣 

bubuko.com,布布扣

pointer_1指向a,pointer_2指向b

-----------------------  分割线 ---------------------

bubuko.com,布布扣

练习

问:若已执行了 pointer_1=&a,则:&*pointer_1的含义是什么?

答:pointer_1=&a ,这时pinter_1存储的是 a的地址,

*pinter_1 是取指针所指向的值,也即 a

所以 &*pinter_1 就是取 a的地址,相当于 &a

*取内容,&取地址,两者是互异的,互相抵消

问:*&a的含义是什么?

答:&a取的是地址,*地址取的是内容,所以*&a 就是a

问:(*pinter_1)++相当于什么?

答:*pointer_1 是取pointer_1所指向的值,所以这里相当于 a++

C语言指针,布布扣,bubuko.com

C语言指针

标签:style   blog   http   color   数据   ar   2014   amp   

原文地址:http://www.cnblogs.com/zhaoqingqing/p/3916534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!