C语言入门5:指针入门
1、指针是什么?
指针是一种保存变量地址的变量。
在计算机中每个存储单元(一个字节)都有一个编号,这个编号称为变量地址。
普通变量的值是实际值,指针变量的值是变量的地址。
取地址
我们可以在变量名前加上&,表示获取变量的地址。
int n = 10;
printf("&n=%p\n",&n);
printf("n=%d\n",n);
变量地址通常使用16进制表示,使用%p或者%P打印地址。
2、指针怎么用?
2.1 定义指针
定义指针与定义变量的方式一样,只不过要在类型和变量名中间加上一个*星号。
类型* 指针变量;
指针变量只能使用同类型变量的地址赋值。
int n = 10;
int* p;
p = &n;
printf("&n=%p\n",p);
printf("n=%d\n",n);
也可以直接初始化。
int n = 10;
int* p = &n;
printf("&n=%p\n",p);
printf("n=%d\n",n);
2.2 解引用
指针的强大之处可以直接操作储存地址里面的数据。这种操作称为解引用。使用时需要在指针前加上星号。
**注意:这里的与声明指针的含义不一样,与乘号也不一样。**
int n = 10;
int* p = &n;
printf("n=%d\n",n);
printf("*p=%d\n",*p);
n = 100;
printf("n=%d\n",n);
printf("*p=%d\n",*p);
*p = 1000;