【发布时间】:2017-02-05 22:13:10
【问题描述】:
我有以下代码
int main(int argc, char **argv, char **envp)
{
const char *usuario= NULL;
while(*envp)
{
char *str = *envp++;
//if(strcmp(str,"USERNAME")==0)
if(str[0] == 'U' && str[1] == 'S' && str[2]=='E' && str[3]=='R' && str[4] == 'N')
{
usuario = str;
break;
}
}
if(usuario != NULL)
{
printf("Hola, bienvenido al programa %s",usuario);
}
return 0;
}
我的问题是,为什么它有效?该“usuario”变量被定义为 NULL 是 CONST 类型。假设这些变量不能在整个程序中被修改,但是在这段时间内被usuario = str;修改了
【问题讨论】:
-
usuario不是const。它指向的是const。 -
thx Micho,一个问题,我如何将那个灰色的框放在代码中?我用了"``"但是没用