Wie stellt sich heraus, dass der Ausgang Morgen ist?Hinzufügen einer Ganzzahl zu einer Zeichenfolge in C, wie das Ergebnis zu verstehen?
#include<stdio.h>
void main()
{
printf(5+"Good Morning");
return 0;
}
output is Morning
Wie stellt sich heraus, dass der Ausgang Morgen ist?Hinzufügen einer Ganzzahl zu einer Zeichenfolge in C, wie das Ergebnis zu verstehen?
#include<stdio.h>
void main()
{
printf(5+"Good Morning");
return 0;
}
output is Morning
Zeigerarithmetik: added Sie 5 an die char
Arrayposition, die 5 ersten Zeichen übersprungen, d.h. Good
und Raum.
Es ist legal, solange Sie in diesem Fall nicht die Größe der Zeichenfolge überschreiten, haben Sie undefiniertes Verhalten
So ist es passiert, ohne auch die Char-Array zu deklarieren und zu initialisieren? –
Sie haben _and_ initialisiert Ihre Char-Array: Es ist ein _literal_. –
@AnjaniKumar deklariert implizit ein temporäres, unbenanntes Zeichen-Array – artm
'void main()' ist falsch; es sollte 'int main (void)' sein. Sie sollten eine Warnung bekommen haben, wahrscheinlich auf 'void main()', und auch auf 'return 0;'. Ignoriere Compilerwarnungen nicht. –
so viele Fragen konnten vermieden werden, wenn Menschen die Warnungen tatsächlich _read _ und _nahmen_ (auch wenn es nicht der Punkt hier ist, kann OP_next_ Problem sein. Und Antworter sollten immer versuchen, den OP-Code zu kompilieren, und 454 Warnhinweisen ablehnen erscheinen, einer von ihnen zeigt auf das Problem :) –