c语言*p是什么意思 C语言中*p=a和p=&a意义一样吗?
C语言中*p=a和p=&a意义一样吗?
与前者不同,前者:*P是内存P地址中的单元格,*P=a取该单元格中的值为a;后者:P是变量,&A是变量的地址,P=&A是变量的内存地址。
c语言中*p=a是什么意思?
假设我们定义了一个指针P。然后经常使用三个符号:
1,P;
2,*P
3,&P初学者经常感到困惑。这三个符号是什么意思?我们知道P是指针变量的名称,它表示指针变量指向的内存地址。如果使用%P输出,它将是一个十六进制数。和*P表示存储在该指针指向的内存地址中的内容,它通常是与指针类型一致的变量或常量。我们知道&是地址运算符,&是指针P的地址。等等,怎么会有另一个地址?它和P有什么区别?不同的是指针P也是一个变量。因为它是一个变量,编译器必须为它分配一个内存地址,就像程序中定义的int变量I一样,编译器需要为它分配一个内存空间。And&P是编译器为变量p分配的内存地址,因为p是指针变量,所以这个特殊的标识将指向另一个内存地址。程序员根据程序的需要把它指向一个内存地址,它指向的内存地址用P来表示。另外,P指向的地址的内容用*P来表示。让我举一个例子来说明这三个符号的含义。假设有一个房地产销售员,当然,现在流行的名字是“销售代表”等等,我们用字母X来代表他。他负责出售房地产的房子。房子里有一个a的地址,他也需要一个住的地方。他住的房子的地址是B,幸运的推销员很快就把房子卖给了C,现在公司要求出售的房子必须承包给每户,也就是说,当提到x时,可以管理到C,如果用程序来表示以上内容,可以用指针。首先,我们定义一个指向地址a的指针p,其中C存在,B存在。现在,AMPP,好吧,你知道吗?是的,P是指这个指针指向的地址,是a,*P是指住在这个地址的人,是C,&;P是指销售员住的地址,是B。
c语言中*p=a与*p=&a有什么区别?
首先,我们来谈谈*和&。为了便于理解,您可以认为*代表内容,&代表地址。我将不讨论它们之间的区别,因为*P=&A通常是错误的,而P=&A是常用的。让我们比较一下*P=A和P=&A。看这幅画。非常详细。显然他们是等价的。然后比较*P=&A和P=&A,它们都是指针变量的赋值。赋值有两种形式:①先定义后赋值,inta=3,*P(定义指针变量*P)P=&A(取指针变量的地址)②定义变量并赋值,inta=3,*P=&A,也就是说,在赋值中,int*P=&A等价于int*P,P=&A,它们之间的区别是int*P=&A定义*P并同时分配P(即a的地址分配给P),而P=&A只分配P而不定义指针变量。但是,应该注意的是,只有同时定义赋值时,“*P=&A”才是正确的。在其他情况下,不要使用*P=&A,因为它根本不正确,如下图所示。我之前的问题是为什么*P=&A没有错?后来,老师给出的解释是,这个表格只有在上述情况下才有效,其他情况确实是错误的。
*p=a与p=&a有什么区别?
1. 一般来说,*P=&A的表达式是错误的,*P=A和P=&A是正确的。2*P=a的意思是把a的值赋给P指针指向的地址的值;3。P=&A的意思是将a的地址分配给P指针;4。区别:*P是一个值;P是一个地址;它们完全不同。5*表示P所指向的地址的值,它只是一个值;&是取地址符号,它是地址;P是指针,它可以理解为指向的值的地址,*P是取P指针所指向的地址的值,&是取a的地址。扩展数据:指针有两种含义:一种是作为数据类型,另一种是作为实体。1指针作为实体是计算机语言中用来保存内存地址的变量。指针一般出现在较低级的编程语言中,如C语言。像Java这样的高级语言通常避免使用指针,而不是引用。2作为数据类型,指针可以从函数类型、对象类型或不完整类型派生。从中导出的数据类型称为引用类型。指针类型描述的对象的值是对所引用类型的实体的引用。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。