C语言指针

本文详细介绍了指针的基本概念,包括指针作为地址表示、不同类型指针的定义,如int、char和double指针,以及指针的赋值、索引操作。同时探讨了指针尺寸与系统字长的关系。

1.指针的概念

由于翻译的问题,以及口语表达的习惯,在日常表述中,指针在不同的场合会代表以下几个含义:

  • 指地址
    • 比如变量a的地址 &a,这是一个地址当然也是一个指针
    • 我们可以说指针 &a 指向变量 a。
  • 指指针变量
    • 比如 int *p; 此处变量p是指针变量,又常被简称指针。

2.指针的定义

int    *p1; // 用于存储 int  型数据的地址,p1 被称为 int  型指针,或称整型指针
char   *p2; // 用于存储 char 型数据的地址,p2 被称为 char 型指针,或称字符指针
double *p3; // 用于存储double型数据的地址,p3 被称为 double 型指针

3.指针的赋值

赋给指针的地址,类型需跟指针的类型相匹配。

int a = 100;
p1 = &a; // 将一个整型地址,赋值给整型指针p1

char c = 'x';
p2 = &c; // 将一个字符地址,赋值给字符指针p2

double f = 3.14;
p3 = &f; // 将一个浮点地址,赋值给浮点指针p3

4.指针的索引

所谓索引,指的是通过指针,取得其指向的目标

*p1 = 200; // 将 p1 指向的目标(即a)修改为200,等价于 a = 200;
*p2 = 'y'; // 将 p2 指向的目标(即c)修改为'y',等价于 c = 'y';
*p3 = 6.6; // 将 p3 指向的目标(即f)修改为6.6,等价于 f = 6.6;
指针的尺寸
  • 指针尺寸指的是指针所占内存的字节数
  • 指针所占内存,取决于地址的长度,而地址的长度则取决于系统寻址范围,即字长
  • 结论:指针尺寸只跟系统的字长有关,跟具体的指针的类型无关
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lcannal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值