指针:一种特殊的变量

1  指针是C语言中的变量

  1.     因为是变量,所以用于保存具体值。
  2.     特殊之处,指针保存的值为内存的地址。
  3.     何为内存地址?
  4.     内存是计算机的储存部件,每个存储部件都有固定唯一的编号。
  5.     内存中存储单元的编号即内存地址。

2 基本事实

程序中一切元素都存储在内存中,因此,可通过内存地址访问程序元素。

3 获取地址

  1. C语言中通过&操作符获取程序元素的地址。
  2. &可用于获取变量、数组、函数的起始地址。
  3. 内存地址的本质是一个无符号整数 (4字节或8字节)

示例代码one:

#include <stdio.h>

#include <stdlib.h>

int main()

{

int var = 0;

printf("var value = %d\n",var); // 打印var的值

printf("var address = %p\n",&var); // 打印var的地址

system("pause");

return 0;

}

tips: 只要通过 内存地址 + 长度 才能确定一个变量中保存的值。

----type-数据类型,决定访问内存时的长度范围。

—*—标志,意味着定义一个指针变量。

_pointer变量名,遵循C语言命名规则。

示例代码two:

int main() { char* pChar; // 1个字节 short* pShort; // 2个字节 int* pInt; // 4个字节 float* pFloat; // 4个字节 double* pDouble;// 8个字节 return 0; }

指针内存访问:* pointer

指针访问操作符 (*) 作用于指针变量即可访问数据。

指针内存访问: * pointer

指针访问操作符 (* ) 作用于指针变量即可访问内存数据。

指针的类型决定通过地址访问内存时的长度范围。

指针的类型统一占用4字节或8字节。

示例代码three:

\#include <stdio.h>

\#include <stdlib.h>

int main()

{

  int var = 0;

  int another = 0;

  int * pVar = NULL;

  printf("1. var = %d\n",var);

  printf("1. pVar = %p\n",pVar);

  pVar = &var;     // 使用指针保存变量的地址

  *pVar = 100;     // *pVar 等价于 var,var = 100;

  printf("2. var = %d\n",var);

  printf("2. pVar = %p\n",pVar);

  pVar = &another;   // 改变了pVar的指向,使得pVar保存another的地址。

  *pVar = 1000;    // another = 1000;

  printf("3.another = %d\n",another);

  printf("3.pVar = %p\n",pVar);

  printf("4. add==> %d\n",var + another + *pVar); // 100 + 1000 + 1000 = 2100 

  system("pause");

  return 0; 

}

4 小结

  1. 指针是C语言中的变量 (本质为容器)。

  2. 指针专用于保存程序元素的内存地址。

  3. 可使用 * 操作符通过指针访问程序元素本身。

  4. 指针也有类型,指针类型有数据类型 + * 构成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值