/*
* helloworld.c
*
* Created on: 2010-10-19
* Author: cs
*/
#include <stdio.h>
/*
* 指针也是一种变量, 指针也有类型, 在32位系统中它的值占4个字节.
* 变量包括地址和值.值可以是一个地址.值有一个或多个字节.
* 地址实际上是一块连续的内存块的首地址.根据指针类型来计算偏移量.可访问整块内存区域.
* 值 是内存块的实际值.不是一个地址的值是叶子结点,不能再引用其它内存区域.
* 指针与变量的区别在于内存分配.
* &p 总是返回指针的原始地址.
* &v 总是返回变量的原始地址.
*/
int main(void)
{
int d = 123;
int* p = &d;
int** pp = &p;
printf("%d\n", d); // 变量值
printf("%p\n", &d); // 变量地址
printf("%p\n", p); // 指针指向变量的地址
printf("%d\n", *p); // 指针指向变量的值
printf("%p\n", &p); // 指针地址
printf("%p\n", pp); // 指针指向指针的地址
printf("%p\n", *pp); // 指针指向指针的地址的值
printf("%p\n", &pp); // 指针地址
return 0;
}
运行结果:
123
0022FF3C
0022FF3C
123
0022FF38
0022FF38
0022FF3C
0022FF34