分类：电脑/网络-软件
问题：C语言程序问题程序1：#include&lt;malloc.h& 
1：#include <malloc.h>#include <stdio.h>main(){  char *p,*q;  p=(char *)malloc(sizeof(char)*20);  q=p;  scanf("%s %s",p,q);  printf("%s,%s\n",p,q);  }程序2： #include <iostream.h>void main(){ int a=-1,b=4,k;  k=(a++<=0)&&(!(b--&lt1：#include <malloc.h>#include <stdio.h>main(){  char *p,*q;  p=(char *)malloc(sizeof(char)*20);  q=p;  scanf("%s %s",p,q);  printf("%s,%s\n",p,q);  }程序2： #include <iostream.h>void main(){ int a=-1,b=4,k;  k=(a++<=0)&&(!(b--<=0));  cout<<k<<a<<b<<endl;  }帮忙解释一下这两个程序的意思，要详细地
回答：1.#include <malloc.h> #include <std.h> main() { char *p,*q; //定义2个字符指针p=(char *)malloc(sizeof(char)*20);  //给指针p申请一个空间q=p; scanf("%s %s",p,q);  //接受2个字符串,p指向第一个,q指向第二个 printf("%s,%s\n",p,q);  //输出}2.#include <iostream.h> void main() { int a=-1,b=4,k; k=(a++<=0)&&(!(b--<=0)); //关键这句,第一个先判断a++<=0?,因为a++是后自加,所以先判断a<=0?满足条件,结果为1(一下没注意,谢谢楼主指出)//第二次判断!(b--<=0) ,b--,也是做完判断后在自减,4<=0不满足,为0,进行非运算后得到1//最后1 && 1 ,是与运算,真真得真,所以这时候k的值为1//这句执行完后a,b值都有变化:a=0,b=3cout<<k<<a<<b<<endl; //输出:103}