哥们,指针指向的那段地址就是动态数组么?
“main(){inta=5;printf("%p",a);}你要是像上面那样就不是随机值了它是以十六进制输出”哥们,只要令a等于5的话,就能正常输出么?那输出时为什么不...
“main()
{ int a=5;
printf("%p",a);
}
你要是像上面那样 就不是随机值了 它是以十六进制输出”
哥们,只要令a等于5的话,就能正常输出么?那输出时为什么不是用&a么?不是要输出地址么?
还有如果stu是一个结构变量,store是结构内的整形变量,那么stu.score指的是score的值还是它的地址呢?
麻烦你了
还有使用malloc和free时我没用 #include<malloc.h>,好像编译也可以通过,这是为什么呢? 展开
{ int a=5;
printf("%p",a);
}
你要是像上面那样 就不是随机值了 它是以十六进制输出”
哥们,只要令a等于5的话,就能正常输出么?那输出时为什么不是用&a么?不是要输出地址么?
还有如果stu是一个结构变量,store是结构内的整形变量,那么stu.score指的是score的值还是它的地址呢?
麻烦你了
还有使用malloc和free时我没用 #include<malloc.h>,好像编译也可以通过,这是为什么呢? 展开
1个回答
展开全部
%p 格式 用于指针,输出十六进制地址
普通变量,加& 得地址,用 %x 十六进制, 用%d 十进制输出.
对比下面6条输出,你会明白。
#include<malloc.h> 老式编译器需要,新的编译器“聪明”,可省。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a=5;
int *p = &a;
printf("%p\n",p); //地址
printf("%d\n",p); //地址
printf("%d\n",*p); //值
printf("%08x\n",&a); //地址
printf("%d\n",&a); //地址
printf("%d\n",a); //值
}
普通变量,加& 得地址,用 %x 十六进制, 用%d 十进制输出.
对比下面6条输出,你会明白。
#include<malloc.h> 老式编译器需要,新的编译器“聪明”,可省。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a=5;
int *p = &a;
printf("%p\n",p); //地址
printf("%d\n",p); //地址
printf("%d\n",*p); //值
printf("%08x\n",&a); //地址
printf("%d\n",&a); //地址
printf("%d\n",a); //值
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询