1. 指针和地址
TCPL 中给指针的定义是: A pointer is a group of cells (often two or four) that can hold an address .
int value = 10; int *pvalue = &value;
上面这个语句的内存模型是:
注意: &(取地址)操作符只对内存中存在的对象起作用,如变量和数组类型。不能对表达式,常量和寄存器变量使用取地址操作。
*(析取)操作符应用于一个指针变量时,取得这个指针变量所指向的对象。
每个指针只能指向特定类型的数据类型(void *型的指针可以指向任意类型的对象,但是却无法析取自身)。
2. 指针和函数参数:
TCPL中有这样一段描述: Since C
passes arguments to functions by value, there is no direct way for the called
function to alter a variable in the calling function.
C语言函数参数的传递方式是传值的,所以不能直接在被调用函数中修改调用函数中的变量。下面所谓的通过传递指针的"传址"方式,实际上也是"传值"方式,不过这里传递的是一个地址的值而已。
下面通过一个实例来验证参数为指针的函数:
原文地址:http://www.cnblogs.com/jiangheng/p/3764429.html