quel est le type de retour de printf
Il peut être question stupide, mais je suis confus. C'est pourquoi je suis à effacer mes doutes. hier, lors de mon entretien j'ai eu une question comme
char ch="Hello";
printf("%d",printf("%s",ch));
J'ai pensé printf
est un vide type de fonction, parce que je n'ai jamais vu printf
la fonction à affecter à la variable. Donc, je l'ai dit, il va montrer erreur de compilation. Depuis, le compilateur ne trouverez pas de type de retour printf
fonction. Mais, j'ai eu tort. Et la sortie est Hello5. Je suis vraiment confuse, comment cela arrive.
char ch="Hello";
devrait probablement êtrechar* ch="Hello";
- downvote était prévu, mais pas autant que cela. a seulement 1 commentaire et 2 réponses. ce sujet reste 3 ..???
- ceci a été demandé, lors de mon entrevue. je n'ai pas posé cette question moi-même.\
- vous navez pas poser une vraie question.
Vous devez vous connecter pour publier un commentaire.
La fonction fun() retourne un int, vous êtes tout simplement pas en l'assignant à quoi que ce soit. Donc, la valeur de retour est d'être jetés comme il n'est pas affecté à quoi que ce soit.
printf en passant, n'est pas une fonction void, mais renvoie le nombre de caractères imprimés, ce qui est 5 dans le cas de "Bonjour".
printf
, je le savais. c'est pourquoi, j'ai mentionné la sortie dans ma question.Ce que vous avez probablement lu "vous avez besoin d'un l-valeur d'accepter le retour d'un appel de fonction"
Pour eg. dans votre code.
vous ne pouvez pas faire
parce que 5 n'est pas une l-value.
Cependant ces deux sont très bien
ou
Aussi, vous avez besoin
Et
void main()
est non-standard.Vous avez besoin