a
存储指向变量的地址,*a
为指针的值,&a
为指针的地址
#include
int main(){
/** 测试代码部分一 **/
int a1=2;
int *b1;
b1=&a1;
printf(" a1 = %d, &a1 = %d, b1 = %d, *b1 = %d, &b1 = %d\n\n",a1,&a1,b1,*b1,&b1);
/** 测试代码部分二 **/
int *a2;
a2=&a2;
printf(" a2 = %d, *a2 = %d, &a2 = %d\n\n",a2,*a2,&a2);
}
int *a = &value;
int *b;
b = &value;
int *c = (int *)malloc(sizeof(int) * 1);
*c = value;
int *d;
d = (int *)malloc(sizeof(int) * 1);
*d = value;
#include
int main()
{
/** 目标测试变量 **/
int value = 42;
/** 直接将指针赋值为变量的地址 **/
int *a = &value;
/** 先定义指针,再将地址赋值给指针 **/
int *b;
b=&value;// X 错误的写法--> *b=value;
/** 先给指针分配好内存,然后赋值 **/
int *c=(int *)malloc(sizeof(int)*1);
*c=value; // √其他写法--> c=&value;
/** 先定义指针.再分配内存,最后赋值 **/
int *d;
d = (int*)malloc(sizeof(int)*1);// X 错误的写法--> *d=(int*)malloc(sizeof(int)*1);
*d=value;
/** 各种情况的结果 **/
printf("---------value初始值为%d,地址为%d---------\n\n",value,&value);
/** a :42, &a :6487704, sizeof(a):4 **/
printf("a 的值:%d, a 的地址为%d, a 所占的内存为%d\n\n", *a,&a,sizeof(a));
/** b :42, &b :6487700, sizeof(b):4 **/
printf("b 的值:%d, b 的地址为%d, b 所占的内存为%d\n\n", *b,&b,sizeof(b));
/** c :42, &c :6487696, sizeof(c):4 **/
printf("c 的值:%d, c 的地址为%d, c 所占的内存为%d\n\n", *c,&c,sizeof(c));
/** d :42, &d :6487692, sizeof(d):4 **/
printf("d 的值:%d, d 的地址为%d, d 所占的内存为%d\n\n", *d,&d,sizeof(d));
/**对value的值进行加1**/
value++;
/** 观察value值增加后的变化 **/
printf("---------在对value值进行加1后,各值的变化---------\n\n");
/** a :43, &a :6487704, sizeof(a):4 **/
printf("a 的值:%d, a 的地址为%d, a 所占的内存为%d\n\n", *a,&a,sizeof(a));
/** b :43, &b :6487700, sizeof(b):4 **/
printf("b 的值:%d, b 的地址为%d, b 所占的内存为%d\n\n", *b,&b,sizeof(b));
/** c :42, &c :6487696, sizeof(c):4 **/
printf("c 的值:%d, c 的地址为%d, c 所占的内存为%d\n\n", *c,&c,sizeof(c));
/** d :42, &d :6487692, sizeof(d):4 **/
printf("d 的值:%d, d 的地址为%d, d 所占的内存为%d\n", *d,&d,sizeof(d));
return 0;
}