C语言放弃之什么是指针

  1. 参考书籍:
  2. 几年前学习C语言因为没能理解指针, 放弃了. 结果现在还是得重新学习, 看来逃避是没有用的(现在流的泪都是以前脑子进的水)
  3. 指针

变量

一个变量拥有以下四个属性:

int a;
a=2;
  • 变量类型 (int)
  • 变量地址 (&a)
  • 变量名 (a)
  • 变量值 (2)

赋值

赋值是将变量地址代表的内存存储的变量值修改成相应的值

int a, b;
a=2;
b=a;
//变量b中的  变量地址  的内存存储的  变量值  修改成2

指针变量的概念

如果某变量存储了另外一个变量的变量地址, (该变量的变量值和另一变量的变量地址相等)那么称该变量为指针变量
(该变量是一个指向另一个变量的指针)

*号的作用

指针的理解在于*

  • 声明中*表示标识作用, 表示这个变量有别于普通变量, 是一个指针变量.使用的时候像普通变量一样对待. (因为操作地址的关系, 赋值要小心)
int *a;
//a是一个指针变量
  • 非声明情况下, *会将变量中变量值作为变量地址, 取出其中的值
    可以看做*&的逆运算. &是取址, *是取值.(有点别扭)
int b, *a;
b=2;
a=&b;
//a的值是变量b地址, 那么*a就是b, 取出a值所代表地址中的值

作用

函数可以改变变量的值

void decompose(double x, long *int_part, double *frac_part);
{
*int_part= (long) x;
*frac_part=x-*int_part
}
int i;
double d;
decompose(3.14159, &i, &d);
//i,d的值变成3, 0.14159

练习

int **p//*p说明p是个指针, **p说明p是一个指向指针的指针

待续...

你可能感兴趣的:(C语言放弃之什么是指针)