C语言中的&和*

简介: C语言中的&和*

C语言中的&和*

1、C语言中为什么存在&和*

C语言中大名鼎鼎的“指针”,想必你肯定听说过吧。

没错,C语言中的&和*就是为了指针而诞生的。

指针说白了就是直接/间接的操作(取/存)存储中的地址中的数据。

试想一下,如果没有&和*的存在,你可能每天都在为计算和寻找某个变量在哪里而发愁呢!

有了&和*之后,就不需要你手动的去计算内存中的地址。

2、&和*是什么?

&取地址运算符;

*间接寻址,也可以称为取值运算符,这样就好理解了运算符;

&的作用:如果想找到变量的地址,可以使用&(取地址)运算符。

*的作用:如果你学过链表,你经常会用到:

p->q;

那么p就是指向q的地址。

如果你学过计算机组成原理或者操作系统,里面的寄存器的寻址方式,就有间接寻址方式。

间接寻址方式:说白了就是取这个地址指向的地址的值。

如果有一个变量p,那么p就是取p指向地址的值。

3、&(取地址运算符)和*(间接寻址运算符)的使用

int i; 是变量

int *pi;是指针

int i, *pi;
 char c,*pc;

例子:

#include <stdio.h>
int main()
{
  int i, *pi;
  char c,*pc;
  //初始化i为10
  i = 10;
  //初始化c为‘a’字符
  c = 'a';
  //把pi指向i的地址
  pi = &i;
  //把pc指向c的地址
  pc = &c;
  printf("i=%d;c=%c\n",*pi,*pc);
  //做一些基本处理
  *pi = *pi + 100;
  printf("*pi+100=%d\n",*pi);
  printf("pi addr=%p;i addr=%p;pc addr=%p;c addr=%p\n",pi,&i,pc,&c);
  return 0;
}

执行结果:

i=10;c=a
*pi+100=110
pi addr=0x7ffe76034684;i addr=0x7ffe76034684;pc addr=0x7ffe76034683;c addr=0x7ffe76034683
目录
打赏
0
0
0
0
4
分享
相关文章
|
10月前
|
C语言练习5
C语言练习5。
42 2
【C语言】初识C语言
【C语言】初识C语言
60 0
|
5月前
|
1.3 C语言的应用范围
C语言自20世纪80年代以来一直是主流编程语言,适用于小型计算机、个人电脑及大型机。因其高效紧凑且易于修改和移植,广泛用于软件开发。尽管后来C++和JAVA流行起来,但C语言仍然是软件行业核心,并在嵌入式系统、科学编程和操作系统开发如Linux中扮演重要角色。即使到现在,掌握C语言仍是一项重要技能。不是必须得是计算机专家才能使用C语言,学习C语言同时也能学到很多C++的知识。
115 8
|
7月前
|
C语言中的复合语句
C语言中的复合语句
660 1
|
10月前
|
C语言:练习1
C语言:练习1
75 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等