#include <stdio.h>
int main()
{
int var1 = 20;
printf("变量var1的值为:%d\n", var1);
printf("变量var1的内存地址为:%p\n", &var1);
return 0;
}
运行结果:
变量var1的值为:20
变量var1的内存地址为:0x7ffd7ed6060c
这里20这个值是放在内存中地址为7ffd7ed6060c的空间中,0x是代表十六进制的意思。
指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。
#include <stdio.h>
int main ()
{
int var = 20; /* 变量var的声明 */
int *p; /* 指针变量p的声明 */
p = &var; /* 在指针变量中存储 var 的地址,也就是给指针变量赋值 */
/* var在内存中的地址 */
printf("Address of var: %p\n", &var );
/* 在指针变量中存储的地址 */
printf("Address stored in p: %p\n", p );
/* 指针本身在内存中的地址 */
printf("Address of p: %p\n", &p);
/* 使用变量访问值 */
printf("var = %d\n", var);
/* 使用指针访问值 */
printf("*p = %d\n", *p );
return 0;
}
运行结果:
Address of var: 0x7ffecc6d7ea4
Address stored in p: 0x7ffecc6d7ea4
Address of p: 0x7ffecc6d7ea8
var = 20
*p = 20