指针就是地址,地址就是指针
地址就是内存单元的编号
指针变量就是存放地址的变量
指针和指针变量是两个不同的概念
但是要注意,通常我们叙述时会把指针变量简称为指针,实际它们的含义并不一样
#include<stdio.h>
int main(void)
{
int *p; /* 定义了一个指针变量p
int *p 不表示定义了一个名字叫*p的变量
int *p应该这样理解 p是变量的名 p变量的数据类型是 int*类型
所谓的int *类型就是存放int变量地址的类型
*/
int i = 3;
p = &i; /*
正确 p保存了i的地址,因此p指向i,但p不是i,修改p或i的值都不会相互影响
如果一个指针变量 (如p),指向了某个普通变量 (如i),则*指针变量 (如*p)
就完全等同于 普通变量 (如i) 就是说在所有出现i的地方都可以替换成*p,
反之亦然
*/
printf("i = %d\n",i);
printf("i = %d\n",*p);
// p = i; //错误,因为类型不一致,p只能存放int类型变量的地址,不能存放int类型变量的值
// p = 55; //错误,原因同上
return 0;
}