请问这个程序该如何分析呢?后面的for循环都能理解,但是前面的调用函数部分,在主函数里直接就调用了fun()函数,void函数里定义了一个指针p,但是没有指向对象,if语句里的条件怎么判断呢?
if (p = new int)
{
...
}
其实就是
p = new int; // 这里分配了一个单个整数的内存,指向p
if (p != NULL) // 说明分配成功
{
...
}
因为里面有 *p = 5; cout << *p;
所以输出5
if 里判断
首先 p 赋值 new int
然后 if 判断 p是否为空
如果有用麻烦点个采纳
void fun() 函数里,if (p = new int) 这句可以拆解为两句:一句 p = new int; 相当于定义一个整形变量,让 p 指向它;二句 if (p) ,如果 new 成功此时 p != NULL , if (p) 等价为 if (真) 条件满足 , *p = 5 , cout << *p; 输出数字 5 。