目录
理解C语言中的*pp
扩展知识:*p**p的区别
首页 后端开发 C#.Net教程 c语言中*p和p的区别是什么

c语言中*p和p的区别是什么

Nov 29, 2022 pm 06:03 PM
c语言 指针

区别:1、表示的含义不同,“*p”表示此指针指向的内存地址中存放的内容,“p”表示一个指针变量的名字,指此指针变量所指向的内存地址。2、输出的格式不同,“*p”输出的一般是一个和指针类型一致的变量或者常量,“p”输出的是一个16进制数, 输出一个指针的地址。3、功能不同,“*p”是让程序去那个地址取出数据,“p”用于存放的是地址。

c语言中*p和p的区别是什么

本教程操作环境:windows7系统、c99版本、Dell G3电脑。

理解C语言中的*pp

C语言中,*p 和p都常用在指针当中表示一个指针变量。

想要利用指针,需先理解地址和数据:你可以想象有很多盒子,每个盒子有对应的号码,那个号码叫做“地址”,而盒子里放的东西叫做“数据”。

p是指针变量,用来存放地址,你可以认为是上面所说的盒子的号码,“ * ”是解引用操作符,你可以把它理解成打开盒子,p就是打开p号盒子,取出里面的数据。

简单来说,你记住,p存放的是地址,而p是让程序去那个地址取出数据。

在C 语言中*号有三个用途,分别是:

  • 乘号,用做乘法运算,例如5*6。

  • 申明一个指针,在定义指针变量时使用,例如int *p;。

  • 间接运算符,取得指针所指向的内存中的值,例如printf("%d",*p);。

C语言中*pp的区别

1、表示的含义不同

*p表示此指针指向的内存地址中存放的内容。

p表示一个指针变量的名字,指此指针变量所指向的内存地址。

2、输出的格式不同

*p一般是一个和指针类型一致的变量或者常量。

p输出的是一个16进制数, 输出一个指针的地址。

3、功能不同

*p是让程序去那个地址取出数据。

p存放的是地址。

例子:

#include <stdio.h>

int main(void){ 

int x=3;

int *p,*q;

p=&x,q=&x;

printf("%d\n",*p++);

printf("%d\n",(*q)++);

printf("%d\n",x);

}
登录后复制

输出结果为:3,3,4;

2.png

解释:

1.png

扩展知识:*p**p的区别

int *p :一级指针,表示p所指向的地址里面存放的是一个int类型的值

int **p :二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针(即p指向的地址里面存放的是一个指向int的一级指针)

例如:

int i=10; //定义了一个整型变量
int *p=&i; //定义了一个指针指向这个变量
int **p1=&p; //定义了一个二级指针指向p指针
登录后复制

那么取出10的值方式为:

printf("i=[%d]\n",*p);
printf("i=[%d]\n",**p1);
登录后复制

3.png

相关推荐:《C视频教程

以上是c语言中*p和p的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

c语言中typedef struct的用法 c语言中typedef struct的用法 May 09, 2024 am 10:15 AM

typedef struct 在 C 语言中用于创建结构体类型别名,简化结构体使用。它通过指定结构体别名将一个新的数据类型作为现有结构体的别名。优点包括增强可读性、代码重用和类型检查。注意:在使用别名前必须定义结构体,别名在程序中必须唯一并且仅在其声明的作用域内有效。

c语言中real是什么意思 c语言中real是什么意思 May 09, 2024 pm 12:06 PM

real 是 C 语言中用于表示双精度浮点数的数据类型,占用 8 个字节,精度约为 15 位小数位,范围为 [-1.7976931348623157e+308, 1.7976931348623157e+308]。

c语言中scanf出现错误怎么办 c语言中scanf出现错误怎么办 May 09, 2024 am 11:39 AM

在 C 语言中,处理 scanf 函数错误的方法包括:1. 检查格式字符串;2. 检查输入;3. 检查返回值;4. 设置错误标志;5. 使用错误处理函数;6. 使用自定义错误处理。为了防止错误,请使用正确的数据类型、仔细验证输入、检查返回值以及在程序中处理潜在错误。

C语言乘方函数如何实现 C语言乘方函数如何实现 May 09, 2024 pm 11:33 PM

C语言中,实现乘方运算有两种方法:使用pow()函数,计算第一个参数的第二个参数次方。定义自定义乘方函数,可通过递归或迭代实现:递归方式持续将幂次减少一倍,直至为0。迭代方式使用循环逐次累乘基数。

c语言中reg是什么意思 c语言中reg是什么意思 May 09, 2024 am 09:57 AM

reg是C语言中用于寄存器的关键字,用于声明指向寄存器的指针变量。语法:register data_type *var_name; 其中data_type是寄存器中存储的数据类型,var_name是指针变量的名称。通过解引用指针可以访问寄存器中的值,但需注意不同平台和编译器可用寄存器不同。

ElemType在c语言中的用法 ElemType在c语言中的用法 May 09, 2024 pm 12:03 PM

ElemType 是一种 C 语言的数据类型,表示数组或结构中的元素类型。它在声明数组元素类型、定义结构成员类型以及泛型函数和宏中使用。注意,ElemType 不是保留字,可以替换为其他名称。

inline在c语言中的用法 inline在c语言中的用法 May 09, 2024 am 10:12 AM

inline关键字用于将C语言函数声明为内联函数,通过直接插入函数代码到调用处,消除函数调用开销,从而提高执行效率。但要注意,内联函数可能导致代码膨胀和调试困难,因此适用于函数体较小、频繁调用且开销较大的场景。

scanfs在c语言中的作用 scanfs在c语言中的作用 May 09, 2024 am 11:30 AM

scanfs 函数在 C 语言中用于从标准输入读取带格式的数据,将读取到的数据存储在指定的变量中。它根据 format 参数指定的格式说明符(如 %d、%f)读取数据,并将数据存储在 ... 参数中指定的变量地址中。scanfs 函数返回成功读取的数据项数,如果读取失败则返回 -1。

See all articles