也说C语言指针

来源:互联网 发布:php后端管理源码 编辑:程序博客网 时间:2024/05/18 03:04

值传递

引用传递

指针传递

 

地址的值

地址的引用

 

要改变的是指针 (传递指针的指针)

要改变的是指针指向的内容 (传递指针,即内容的指针)

 

给地址赋值与往地址存放数据

 

 

1、指针是一个数据的地址,同时也是一个数据(变量或者常量)

一个数据本身就是有地址和值,指针不过是一个地址值数据,即一个地址里存储的是另一个值的地址的数据。

 

2、值传递和引用传递的相对意义

对于传递的参数如果是一个指针的话,这个是有相对的意义的

 

 

对于

*P = AAA

 

地址

代码中的表示

0x01

0x02

&P

0x02

0x03

P

0x03

AAA

*P

0x04

BBB

 

0x05

CCC

 

 

从上面表中,可以有下面的解说

1)地址是不变的,可以改变的是值

2)修改指针的值,即指针指向其它对象,其实就是把指针的值改变了,如P=0x04P就指向了BBB,即*P = BBB了。如下表

地址

代码中的表示

0x01

0x02

&P

0x02

0x04

P

0x03

AAA

 

0x04

BBB

*P

0x05

CCC

 

 

3)修改指针的指向的对象的值,如*P = CCC,如下表

地址

代码中的表示

0x01

0x02

&P

0x02

0x03

P

0x03

CCC

*P

0x04

BBB

 

0x05

CCC

 

 

4)修改指针的地址,如&P = 0x05,如下表

地址

代码中的表示

0x01

0x05

&P

0x02

0x03

 

0x03

CCC

 

0x04

BBB

 

0x05

CCC

P

 

 

CCC

DDD

*P

 

5)给地址赋值,此时地址就是一个变量,即变量的值发生变化了;往地址存数据,地址不变,变是的地址存储的内容

0 0
原创粉丝点击