c中指向指针的指针,

c中指向指针的指针,,c,C,谢谢你阅读这篇文章。我有个问题。以下代码正常: int main() { int x,y; int* q; int** w; x=10; y=15; q=&x; printf("%d\n",*q); *w=&y; printf("%d\n",**w); if(**w<*q){ printf("asdasdasd%d\n",**w); }else{printf("asdas

谢谢你阅读这篇文章。我有个问题。以下代码正常:

int main() {
    int x,y;
    int* q;
    int** w;
    x=10;
    y=15;
    q=&x;
    printf("%d\n",*q);
    *w=&y;
    printf("%d\n",**w);
    if(**w<*q){
        printf("asdasdasd%d\n",**w);
    }else{printf("asdasdas%d\n",*q);}
}
警告:从不兼容的指针类型“int**”[-Wincompatible指针类型]分配到“int*”| 警告:从不兼容的指针类型“char**”[-Wincompatible指针类型]分配到“char*”|


感谢阅读您收到该警告,因为您正在尝试将双指针(**)转换为单指针(*)


相反,您的
main
功能也不好。此处:
*w=&y应该是
w=&q(例如)。否则,将取消对未初始化指针的引用
w
。在
funcio
函数中,还经常取消对未初始化指针的引用。这是未定义的行为。但是如果写入代码
w=&q
时,控制台会发出警告:警告:从不兼容的指针类型“int*”[-Wincompatible指针类型]|和
*w=&x;分配到“int**”是正确的。-.
&q
具有类型
int**
,因为
q
是类型
int*
的变量,所以由于
w
是类型
int**
的变量,赋值
w=&q
应该有效(它只是将
int**
值赋给
int**
变量)<代码>*w=&xw
是有效指针,code>就正确,但在您发布的
w
函数中,
*w=x未初始化调用未定义的行为。谢谢,我为一个简单的问题xD感到非常紧张
void funcio(int* tiempo,int* dni,char* patente,int terminar,int bandera){
    int** tiempom;
    int** dnim;
    char** patentem;
    if(terminar==0){
        if(bandera==0){
            *tiempom=&tiempo; //
            *dnim=&dni; //
            *patentem=&patente; //
            bandera=1;
        }
        if(bandera==1){
            if(**tiempom>*tiempo){
                *tiempom=&tiempo; //
                *dnim=&dni //
                *patentem=&patente; //
            }
        }
    }

    if (terminar==1){
        printf("El dni del chofer con menor tiempo es: %d\n",**dnim);
        printf("Su patente es: %c\n",**patentem);
        printf("Su tiempo fue de: %i\n",**tiempom);
        system("pause");
    }
}
void funcio(int* tiempo,int* dni,char* patente,int terminar,int bandera){
    int** tiempom;
    int** dnim;
    char** patentem;

    if(terminar==0){
        if(bandera==0){
            tiempom = &tiempo; //
            dnim = &dni; //
            patentem = &patente; //
            bandera = 1;
        }
        if(bandera==1){
            if(**tiempom > *tiempo){
                tiempom = &tiempo; //
                dnim = &dni; //
                patentem = &patente; //
            }
        }
    }

    if (terminar==1){
        printf("El dni del chofer con menor tiempo es: %d\n",**dnim);
        printf("Su patente es: %c\n",**patentem);
        printf("Su tiempo fue de: %i\n",**tiempom);
        system("pause");
    }
}