gpt4 book ai didi

C、为什么我不能声明指针并初始化它?

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:35 24 4
gpt4 key购买 nike

好吧,我有以下代码:

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;
}

我的问题是为什么我不能在 while 外部声明变量并在内部初始化它?

char *str;
const char *usuario= NULL;
while(*envp)
{
*str = *envp++;
if(`...

编译器说:警告:赋值从指针生成整数而不进行强制转换

最佳答案

warning: assignment makes integer from pointer without a cast

问题是你没有分配给你的指针,你正在分配给指针指向的值:

*str = *envp++;

str 之前的 * 导致指针被解除引用。相反,您可能想要:

str = *envp++;

关于C、为什么我不能声明指针并初始化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42056808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com