Ich habe in letzter Zeit einen Code für die Programmierung in C studiert. Ich bin hier stecken geblieben, während ich mich mit zweidimensionalen Strings und Zeigern beschäftigt habe. Auch die Funktionen printf(), putchar() und puts() sind verwirrend! Bitte helfen Sie mir mit dem folgenden Ausschnitt aus:C Strings, Pointer, Puts
#include<stdio.h>
int main()
{
char wer[3][4]= {"bag", "let", "bud"};
char (*ptr)[4]=wer;
printf("%d %d %d\n",ptr, ptr+1, ptr+1); // points to bag, let and bud respectively
printf("%d %d %d\n",wer, wer+1, wer+1); // points to bag, let and bud respectively
printf("%d %d %d\n", (*ptr), (*ptr+1), (*ptr +2)); // points to b,a,g respectively
printf("%s\n",*(ptr+1)); //prints let
printf("%s\n", (ptr+1)); //prints let
printf("%s\n", (*ptr +1)); //prints ag
puts(*(ptr+1)); //prints let
//puts((ptr+1)); //gives error
puts((*ptr+1)); //prints ag
putchar(**(ptr+1));//prints l
putchar(*(*ptr +1));//prints a
return 0;
}
ich, warum *(ptr+1)
tun wissen wollen und (ptr+1)
arbeiten beide für printf
während (ptr+1)
für puts
einen Fehler gibt. Auch ich weiß, dass putchar
ein ganzzahliges Argument nimmt. Warum verwenden wir hier einen Doppelzeiger?
Drucken Sie die Zeiger mit '% p' –
Außerdem fordere ich Sie auf, die man-Seiten erneut zu lesen und überprüfen Sie die bereitgestellten Datentypen. :) –
"gibt einen Fehler": Welcher Fehler? –