作业帮 > 综合 > 作业

20分(不知道者勿扰)--关于指针、地址和整数的转换

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/12 17:38:11
20分(不知道者勿扰)--关于指针、地址和整数的转换
int i;
int * jp = &i;
int main(int i,char * argv[]) {
printf("%d %d\n",(int) &i,(int) jp);
}
打印结果相同吗,问什么
20分(不知道者勿扰)--关于指针、地址和整数的转换
结果肯定不同啦. 分析如下:
i有两个, 一个是全局变量, 一个是形参.
jp 是个指向int的指针变量, jp的值就是全局变量i的地址, 即&i. 按理说(int)&i与(int)jp是相同的.但因为i有两个,且在输出时用的是形参i, 形参i的地址是在栈上分配的, 全局i的地址在数据区, 两都不可能相同, 所以结果也不同.而且这种代码的写法是不规范的.