精华内容
下载资源
问答
  • C语言*pp以及&p的区别,*p和**p的区别

    万次阅读 多人点赞 2019-06-24 12:15:45
    转自C语言*pp以及&p的区别 前言: 先要理解地址和数据,你可以想象有很多盒子,每个盒子有对应的号码,那个号码叫做“地址”,而盒子里放的东西叫做“数据”。 上面就段理解了,*pp的区别就不难解释了。 ...

    转自C语言*p、p以及&p的区别

    前言:

    先要理解地址和数据,你可以想象有很多盒子,每个盒子有对应的号码,那个号码叫做“地址”,而盒子里放的东西叫做“数据”。
    上面就段理解了,*p和p的区别就不难解释了。
    p是指针变量,用来存放地址,你可以认为是上面所说的盒子的号码,“ * ”是解引用操作符,你可以把它理解成打开盒子,p就是打开p号盒子,取出里面的数据。
    简单来说,你记住,p存放的是地址,而
    p是让程序去那个地址取出数据。

    摘自《啊哈!算法》:
    在C 语言中*号有三个用途,分别是:

    1. 乘号,用做乘法运算,例如5*6。
    2. 申明一个指针,在定义指针变量时使用,例如int *p;。
    3. 间接运算符,取得指针所指向的内存中的值,例如printf("%d",*p);。

    总结:

    假设我们定义一个指针p。
    那么会经常使用到三个符号:
    1,p;
    2,*p;
    3,&p;
    初学者经常会感到很迷茫,到底这三个符号表示什么?

    p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数。

    *p表示此指针指向的内存地址中存放的内容,一般是一个和指针类型一致的变量或者常量。 而我们知道,&是取地址运算符,&p就是取指针p的地址。

    等会,怎么又来了个地址,它到底和p有什么区别?

    区别:指针p同时也是个变量,既然是变量,编译器肯定要为其分配内存地址,就像程序中定义了一个int型的变量i,编译器要为其分配一块内存空间一样。

    &p就表示编译器为变量p分配的内存地址,而因为p是一个指针变量,这种特殊的身份注定了它要指向另外一个内存地址,程序员按照程序的需要
    让它指向一个内存地址,这个它指向的内存地址就用p表示。而且,p指向的地址中的内容就用*p表示。

    *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);

    展开全文
  • # include #include"malloc.h" int main(void) { // int i; int a[4][4]={2,1,7,88,99}; int (*p)[4]; p = a; printf("%d\n", p); printf("%d", *p); } P和*P值一样
  • EM78P153 C语言范例

    2012-08-14 16:43:49
    义隆单片机EM78P153的C语言程序范例
  • C语言*pp,&p的区别,**p的含义

    千次阅读 2021-01-22 20:04:36
    C语言*pp,&p的区别,**p的含义 指针的定义: 指向地址的变量 *pp,&p的区别 (1) p是一个指针变量的名字,表示此指针变量指向的内存地址。 (2)*p是指p指针指向的地址里的数据。 (3)&p是取p得地址...

    C语言*p、p,&p的区别,**p的含义

    指针的定义

    指向地址的变量

    *p,p,&p的区别

    (1) p是一个指针变量的名字,表示此指针变量指向的内存地址。
    (2)*p是指p指针指向的地址里的数据。
    (3)&p是取p得地址(p本身就是一个地址,但同时也是一个变量。我认为可以这么理解,p是一个变量,他有自己的内存地址,同时p这个变量存储的也是一个地址)

    在这里插入图片描述
    这个程序直观的显示了他们之间的关系

    在这里插入图片描述

    **p的含义

    举个例子
    int **p :二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针(即p指向的地址里面存放的是一个指向int的一级指针)
    也就是说指向指针变量的的指针。这个二级指针变量指向的是一个指针变量的地址

    展开全文
  • c语言中*p++和(*p)++有什么区别

    千次阅读 2018-09-03 16:09:44
    C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样;在(*p)++中,由于()的优先级比*和++都高,所以++作用在()内的表达式*p上。比如有: int x,y,a[]={1,2,3,4,...

    *p++是指下一个地址。

    (*p)++是指将*p所指的数据的值加一。

    C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样;在(*p)++中,由于()的优先级比*和++都高,所以++作用在()内的表达式*p上。比如有:

    int x,y,a[]={1,2,3,4,5},*p=a,*q=a;

    x=*p++;//执行这一句后x=a[0]=1,p=a+1

    y=(*q)++;//执行这一句后,y=a[0]+1=2,q仍然=a

    展开全文
  • C语言中 *p++、*++p、++*p 、(*p)++的区别

    万次阅读 多人点赞 2018-07-27 18:46:14
    *p++ *p p++ 先取值,后指针++ A = *p; *++p ++p *(++p) 先指针++,后取值 A = *(++p); ++*p *p (*p)+1 先取值,后值++ A = (*p)+1; (*...
    A =第一步第二步
    *p++p++*(p++)

    先指针++,后取值

    A = *p;

    *++p++p*(++p)

    先指针++,后取值

    A = *(++p);

    ++*p*p(*p)+1

    先取值,后值++

    A = (*p)+1;

    (*p)++*p(*p)+1

    先取值,后值++

    A = (*p)+1;

    --------------------------------------2021更新------------------------------------

    由于答主接触C语言已经是学生时期现已工作不使用
    于是回头查阅资料修正了第一行:++优先级高于*

    实际工作中尽量避免这种写法,有歧义的地方一定要加上()

    展开全文
  • c语言printf输出p与*p

    2021-01-24 22:25:20
    什么字符串常量可以直接赋值给指针? 字符串常量出现在表达式中时,是以地址形式出现的 char p[] = "hello"; 这是字符串数组初始化,也是可以的 但char p[10];p="hello";不行,值不匹配,左边是地址,右边是值。...
  • C语言*pp以及&p的区别

    万次阅读 多人点赞 2017-08-14 14:49:30
    p是指针变量,用来存放地址,你可以认为是上面所说的盒子的号码,“*”是解引用操作符,你可以把它理解成打开盒子,*p就是打开p号盒子,取出里面的数据。 简单来说,你记住,p存放的是地址,而*p是让程序去那个地址...
  • C语言中*pp的区别

    2021-03-03 10:20:07
    C语言中*pp的区别 C语言中,*pp都常用在指针当中表示一个指针变量,*pp的区别: 表示的含义不同 *p表示此指针指向的内存地址中存放的内容。 p表示一个指针变量的名字,指此指针变量所指向的内存地址。 ...
  • *pp以及&p之间的区别 假设我们定义一个指针p。 那么会经常使用到三个符号: 1,p; 2,*p; 3,&p; p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数。 *...
  • { char s[]="1234567890",*p; int i; for(p=s+5;*p!='\0';p++) { printf("%c",*p); } printf("\n"); p=s+4; i=0; while(i++) { printf("%c",p[-i]); } ...p[-i]这个是什么意思 谢啦
  • 在学习c语言指针的过程中,看到这样一段代码:#include <stdio.h> /* 函数声明 */ double getAverage(int *arr, int size); int main () { /* 带有 5 个元素的整型数组 */ int balance[5] = {...
  • C语言中->含义,比如说 p=p->next

    万次阅读 多人点赞 2019-06-24 15:13:09
    换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”. 举个例子: struct Data { int a,b,c; }; /*定义结构体*/ struct ...
  • C语言指针 *p++和*++p及++*p的区别

    千次阅读 2020-11-06 16:05:34
    今天复习了一下C语言的指针题目,发现在很多代码结果题目中都出现了表达式*p++、**++p和++*p,而这几个表达式特别容易混淆。 那么通过什么方式区分他们呢,答案就是运算符优先级。 *p++ ++和 *(指针访问运算符)...
  • 换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.举个例子:struct Data{ int a,b,c;}; /*定义结构体*/struct Data * p;/*...
  • 解析:C语言中的指针和p, p+1, *(p+1), *P+1, p[0], &p[0] 每一种表达式的含义  一、先解决一个问题:什么是指针 指针就是存放地址的变量。很好,百度上就是这个答案(哈哈,感觉这句话很废话)。 指针是一个...
  • C语言,指针变量的*p,p以及&p的区别

    万次阅读 多人点赞 2014-11-29 16:27:46
    关注公众号“码农帮派”,查看更多系列技术文章: 以下面的情况说明: int a = 5; ...int* p = &...------------------------------------------------------------------------------...*p 是指针变量p指向的变...
  • 主要介绍了C语言中指针 int *p=0;和int *p;*p=0;和”&“有什么关系和区别,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • C语言不完全类型是什么?有什么用途?

    万次阅读 多人点赞 2021-05-22 12:28:28
    ISO(国际标准化组织(International Standard Organization))将C语言分为三个不同类型集合: 函数类型、对象类型和不完全类型。
  • C语言”%p”的意思

    万次阅读 多人点赞 2018-05-10 00:24:50
    (1) 图示 :(2) %p是打印地址的, %x是以十六进制形式打印, 完全不同!另外在64位下结果会不一样, 所以打印指针老老实实用%p .(3) 测试代码 :#include<stdio.h>int main(){  int arr[5] = {10,20,30,40...
  • 不懂这个定义表达了什么意思 int(*p[10])(int) 求大佬解救!!!
  • C语言关于指针P、*P、&P三者的区别

    千次阅读 多人点赞 2020-03-27 13:52:43
    一、指针与指针变量 1、指针和指针变量是两个不同的概念,但要注意的是,通常我们叙述时会把指针变量简称...3、指针变量其实是一个变量,只不过其存放的内容为地址,如 int* p,这个p是指针类型,它的值存的是地址...
  • c语言数组中 *P和&p;P三者的区别

    千次阅读 2016-03-08 11:02:43
    P、*P和&P三者的区别 (2013-02-02 13:30:40) 转载▼ 标签: 指针 c语言 分类:技术 转载自http://ambitiongold.blog.163.com/blog/static/1840165522012921103511610/ 假设我们定义一个指针p。 那么会...
  • # include void f(int ** q); int main() { int * p; f(&p); return 0; } void f(int ** q) { **q=8; printf("%d",**q); }
  • C语言中的指针(*p p &p)

    千次阅读 2009-09-03 16:53:00
    在看博客时,无意看到了一篇关于... 学习C语言时,指针的学习是比较难的一部分,常常分辨不了*p p &p 的区别。下面是摘抄别人的一段测试程序。以下是我的一小段测试用的程序 void test(){ int a=8; int *p=&a; p=(in
  • 义隆单片机EM78P173N C语言使用例程

    热门讨论 2011-11-11 23:57:43
    EM78P173N C语言头文件 EM78P173.H EM78P173N的TCC、WDT、INT、WAKEUP、LVD、TBRD、HEAD、IAR等模块的应用实例及其C语言例程! 非常适合入门学习义隆单片机编程!
  • c++与c语言中*p++,*++p,(*p)++,*(p++),*(++p)

    千次阅读 多人点赞 2018-07-11 17:55:04
    如有疑问请联系,谢谢一、*(p++)与*p++相同#include "iostream"using namespace std;int main(){ int a[5]={1,4,3,2,5},*p; p=a; cout<<"首地址是"<<p<&...
  • C语言】对指针p ,*p ,**p 的认知

    千次阅读 2016-11-14 20:25:51
    因为对指针的用法不熟,我和同学讨论并尝试验证各自对指针的理解。 讨论和验证过程中,有一点比较重要的是...int a=11,b=22,c=33; int **p; 再分别通过几条语句验证: p=&b; //指针p将指向b上的内容; *
  • C语言初探 之 %p

    千次阅读 2013-01-04 13:37:02
    先看代码: int a=16,b=17,c=18; int *p,*q,*g;... printf("%p %p %p\n",a,b,c); printf("%p %p %p\n",&a,&b,&c); printf("%8x %8x %8x\n",&a,&b,&c); printf("%8x %8x %8x\n",p,q,g); %x
  • C语言实现K算法和P算法,可以用来计算最小生成树

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,626,416
精华内容 1,850,566
关键字:

p什么c是什么