你把num也放进格式化字符串里面,所以num不是变量,只是一个字符串,你仔细看自己打印出来的字符串里不是有num吗而你后面没有传入值,c语言也不报错,就用0给你当做默认值
因为你全放在了引号里啊printf("num=%d,&num=%p",num,&num);
后面两个应该在变量位置的放在了控制格式位置,所以默认为0了吧