题5.99:while(a = 14); 是赋值语句,最终 while(14)所以始终为真,这里只有等到 if (y > 50) break; 条件满足时才会跳出do while() 循环。
第一次循环:a = 12, y = 12;
第二次循环:a = 16, y = 28;
第三次循环:a = 16, y = 44;
第四次循环:a = 16, y = 60;
if (y > 50) break; 跳出循环
a = 14,不是a == 14
所以y每次+=14
而a一直14,直到break
所谓尽信书,不如无书,对于编程,要时刻持有怀疑精神。
这题答案错了,铁定是16和60。你用自己的编译器跑一遍应该也是16和60。(望采纳)
然后我们来试试没有分配动态内存的
struct node
{
int Data;
struct node *next;
};
int main()
{
struct node *A=(struct node *)malloc(sizeof(struct node));
A->next->Data=3;
A->next->next=NULL;
A=A->next;
printf("%d",A->Data);
return 0;
}