指针,可恶的指针。。。
虽然绕但是感觉在函数中非常有用。
又是一个绝对和相对的问题。
但幸好还有绝对的存在,让相对不那么相对。
不像某些事物,连绝对都没有。
概念
*p:指针p指向的数值
&a:取变量a的地址
先上程序
int main()
{
int a = 123;
int *p;
p = &a;
printf("%d\n",*p);
printf("%p\n",p);
printf("%p",&p);
return 0;
}
输出结果
123
0060FF0C
0060FF08
Process returned 0 (0x0) execution time : 4.206 s
Press any key to continue.
解释
所以真实的电脑内存名字是十六进制表示的内存单元,各种类型的数值存储在电脑内存中。
这几个数字存储的方式是这样的。。。
存储.jpg
然而程序能处理的是变量的名字
从内存名字的角度:
a等价于0060FFC
指针变量只是一个变量,但他本身包含了指向内存里的数值信息