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=&x只要w
是有效指针,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");
}
}