三句话理解C指针

三句话理解C指针

1. 每一个变量都有一个内存位置

变量内容和内存位置的区别类似“你家”和“你家门牌号”。每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。因此&也叫取地址符。

int  var = 20;   /* 实际变量的声明(定义了变量内容) */

//Content of var variable: 20
printf("Content of var variable: %d\n", var  );
//Address of var variable: 0x7ffeed879958
printf("Address of var variable: %p\n", &var );

2. 指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址。

int  var = 20;   /* 实际变量的声明 */
int  *ip;        /* 指针变量的声明 */

ip = &var;  /* 在指针变量中存储 var 的地址 */
    
/* 在指针变量中存储的地址 */
//Address stored in ip variable: 0x7ffee12c4958
printf("Address stored in ip variable: %p\n", ip );

3. & 和 互为逆运算。&获取到一个普通变量的地址,ip则从一个地址获取普通变量的值。

int  var = 20;   /* 实际变量的声明 */
int  *ip;        /* 指针变量的声明 */

ip = &var;  /* 在指针变量中存储 var 的地址 */

/* 在指针变量中存储的地址 */
// Value of &var variable:: 0x7ffeee04a958
printf("Value of &var variable:: %p\n", &var);
/* 使用指针访问值 */
// Value of *ip variable: 20
printf("Value of *ip variable: %d\n", *ip );

你可能感兴趣的:(指针)