Hi!
Ich habe eine Frage, die sich auf Zeiger als Funktionsparameter bezieht. Hier mal ein Quellcode:
#include
void funktion (int *ptr, char *pwort);
int main(int argc, char* argv[])
{
funktion (5, „Hallo“);
return 0;
}
void funktion (int *pzahl, char *pwort)
{
printf(„Zahl: %d\nString: %s\n“, *ptr, *pwort);
}
Also, funktion gibt einfach die übergebenen Parameter aus. In der main-Funktion wird nun funktion aufgerufen mit 5 und als String „Hallo“. Funktion hat als Parameter 2 Zeiger, einmal einen int-Zeiger und einen char-Zeiger.
Die Zahl 5 in der main-Funktion liefert ja einen Compiler-Fehler (Konvertierung des Parameters 1 von ‚const int‘ in ‚int *‘ nicht moeglich)
Lösen muss man ja das Problem mit einer Variablen (int a = 5; beim Aufruf der funktion dann mit &a)
Doch wieso liefert eigentlich der String nicht so einen Compiler-fehler?
Danke im Voraus!