0
Pourquoi appeler funk (& a) donne une erreur de compilationEssayer de passer adresse à un reffernce à un pointeur
func(int * & data) {data++;}
int main(){
int a = 5;
int *p = &a;
func(&a); //this gives a compile error
funk(p); //this works fine
}
erreur: initialisation invalide de référence non-const de type 'int * &' d'un rvalue de type « int * »
'funk (p); 'Où cette fonction est-elle définie? – roottraveller
car 'a' est de type constant (l'adresse ne peut pas être changée). vous ne pouvez pas changer l'adresse 'a' (ce que vous faites dans la fonction). – roottraveller
Vous ne pouvez pas modifier un _rvalue_. C'est ce que 'func (& a)' tente de faire. Lorsque vous passez une référence, elle doit être soit une _lvalue_ soit un _const-qualifier_. – paddy