三句话理解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 );
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。