printf的问题 printf("%d",a); a是指针变量int b=1,*a=&b;

来源:百度知道 编辑:UC知道 时间:2024/06/25 20:50:09
会输出什么

int b=1;
printf("%d",&b);
别管对不对,会输出1吗
对于标准输出函数没有固定后项
而标准输入函数规定后项是地址
「一定要上机试一试哟」

/* 采用 Win-TC 编译环境
* 程序输出已标注
*/

#include <stdio.h>

int main( void )
{
int b=1,*a=&b;

printf("%x\n",a); /* 输出b所在内存的起始地址,FFC4 */
printf("%x\n",&b); /* 输出b所在内存的起始地址,FFC4 */

printf("%d\n",*a); /* 输出整型变量a所指向的变量的值,1 */
printf("%d\n",b); /* 输出整型变量b的值,1 */

return 0;
}

------- 输出结果 --------
ffc4
ffc4
1
1

自己没上机试吗?时候体会会更深的

printf("%d",a);当然是输出a的值啦,就是也就是b的地址(没法确定答案,随机的,呵呵)

printf("%d",&b);也是输出b的地址啊(我没试过,也有可能编译不通过)

希望对你有帮助