请您告诉我C编程语言中* p和& p之间的区别?因为我真的有这个问题而且我不知道* p或& p是否正常!!!!
答案 0 :(得分:2)
指针是一个变量,其值是另一个变量的地址,即存储单元的直接地址。与任何变量或常量一样,必须先声明指针,然后才能使用它来存储任何变量地址。指针变量声明的一般形式是:
type *var-name;
例如:
int *ip; /* pointer to an integer */
double *dp; /* pointer to a double */
float *fp; /* pointer to a float */
char *ch /* pointer to a character */
看看这个节目:
#include <stdio.h>
int main ()
{
int var = 20; /* actual variable declaration */
int *ip; /* pointer variable declaration */
ip = &var; /* store address of var in pointer variable*/
printf("Address of var variable: %x\n", &var );
/* address stored in pointer variable */
printf("Address stored in ip variable: %x\n", ip );
/* access the value using the pointer */
printf("Value of *ip variable: %d\n", *ip );
return 0;
}
答案 1 :(得分:2)
只需
int a =10;
int *p = &a;
a
是一个保存值为10的变量。存储此值的地址由&a
给出。
现在我们有一个指针p
,基本上指针指向一些内存位置,在这种情况下它指向内存位置&a
。
*p
为您提供10
这称为取消引用指针。
p = &a /* Gives address of variable a */
现在让我们考虑一下
&p
指针也是一种数据类型,存储p的位置由&p