【编程语言 · C语言 · 指针】

指针是C编程中的一种重要概念,它是一个存储其他变量地址的变量,允许间接访问和操作内存位置。指针声明使用星号*,并需指定其指向的数据类型。指针可以初始化为NULL,通过&运算符获取变量地址,*运算符用于解引用。指针可以在表达式中使用,支持算术运算,如加减法,可以改变其所指向的值。
摘要由CSDN通过智能技术生成

什么是指针?

指针在C编程中非常重要,因为它们使你可以轻松地处理内存位置。

指针是数组,字符串以及其他数据结构和算法的基础。

指针是一个变量,其中包含另一个变量的地址。换句话说,它“指向”分配给变量的位置,并且可以间接访问该变量。

指针使用*符号声明,语法如下:

指针数据类型 *标识符 

实际的指针数据类型是十六进制数,但是在声明指针时,必须指出它将指向的数据类型。

星号 * 声明一个指针,并应出现在用于指针变量的标识符旁边。 

以下程序演示了变量,指针和地址:

int j = 63;
int *p = NULL;
p = &j; 

printf("The address of j is %x\n", &j);
printf("p contains address %x\n", p);
printf("The value of j is %d\n", j);
printf("p is pointing to the value %d\n", *p); 

关于此程序,需要注意以下几点:

在将指针分配给有效位置之前,应将其初始化为NULL。

可以使用&符号为指针分配变量的地址。

要查看指针指向的内容,请再次使用 *,如 *p 中所示。

在这种情况下,* 被称为间接或取消引用运算符。该过程称为取消引用。

程序输出类似于:

The address of j is ff3652cc
p contains address ff3652cc
The value of j is 63
p is pointing to the value 63 

一些算法使用指向指针的指针。这种类型的变量声明使用**,并且可以分配另一个指针的地址,如下所示:

int x = 12;
int *p = NULL
int **ptr = NULL;
p = &x;
ptr = &p;

【选词填空】声明指向var变量的指针:

int var = 42;
int ptr =  var;

#

@

&

*

表达式中的指针

指针可以与任何变量一样在表达式中使用。算术运算符可以应用于指针所指向的任何对象。

例如:

int x = 5;
int y;
int *p = NULL;
p = &x;

y = *p + 2; /* y 被赋予 7 */
y += *p;     /* y 被赋予 12 */
*p = y;       /* x 被赋予 12 */
(*p)++;      /* x 增加到 13 */

printf("p指向值 %d\n", *p); 

运行结果:

p指向值 13

注意,++运算符需要括号才能增加所指向的值。使用--运算符时也是如此。

【单选题】指针适用于哪个?

指针存储变量的值

指针可以与任何变量一样在表达式中使用。

指针是无用的,使程序员陷入噩梦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜鸟程序员__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值