char temp[20];
char *tmp;***********//赋值语句
tmp=temp;
if(tmp)
{
}
else
{
}
问题是:给temp赋何初始值能让程序执行else中语句。

解决方案 »

  1.   

    不会吧,怎么可能,除非你的temp是个非法的字符串(NULL)。
      

  2.   

    您的赋值语句形如:
    temp[3]='A';
    它实际是对temp数组的单个成员赋值,
    所以不论赋值为多少,temp都不是NULL.
    要对temp赋值(这是不允许的),应该用temp=NULL;
      

  3.   

    用temp=NULL语句本身就编译不过。
      

  4.   

    char temp[20];
    char *tmp;***********//赋值语句
    tmp=NULL;
    if(tmp)
    {
    }
    else
    {
    }
      

  5.   

    tmp中放的是temp的地址,temp的地址在第一句中就分配了空间,而temp的起始地址一定是大于0的。
    你对temp不管如何赋值,它的地址都是不变的。而且你不可以也不可能改变它的地址。
    所以if(tmp)一定为true;