Schreiben Sie dieses Programm neu, um eine Funktion für jede Art von Ausdrucken zu verwenden. Versuchen Sie, Zeiger auf diese Funktionen zu übergeben, damit sie an den Daten arbeiten. Denken Sie daran, dass Sie eine Funktion deklarieren können, um einen Zeiger zu akzeptieren, aber verwenden Sie ihn einfach wie ein Array.Verwenden Sie eine Funktion für jede Art, wie Sie Dinge ausdrucken?
Wie geht es Ihnen? Ich habe c-Code, die mit for-Schleife sind, Index-Array und Zeiger-Index auszudrucken. Hier richtiger Code ohne Funktion:
int main(int argc, char * argv[])
{
int number[] = {123, 456, 789};
char *strchars[] = {
"ABC", "DEF", "GHI"
};
int count = sizeof(number)/sizeof(int);
int i = 0;
for(i = 0; i < count; i++) {
printf("%s has %d \n", strchars[i], number[i]);
}
// with pointers
int *po_number = number;
char **po_strchars = strchars;
// loop with pointiers
for(i = 0; i < count; i++) {
printf("%s has %d \n", *(po_strchars+i), *(po_number+i));
}
return 0;
}
Aber ich brauche für jede der Möglichkeiten, Dinge auszudrucken. Aber ich kann nicht herausfinden. Hier mein Code mit Funktionen aber ohne Zeiger und Zeichen nur ganzzahlig. Gib mir, wie man es richtig macht:
#include <stdio.h>
// void print_arg(int a[], int b[]);
// now it right?
// void print_arg(int a[], int b[])
void print_arg(int a, int b);
// or now it right?
void print_arg(int a, int b)
{
int a;
int b;
int count = sizeof(a)/sizeof(int);
int i = 0;
//and it
for(i = 0; i < count; i++) {
printf("%d and %d\n", a[i], b[i]);
}
}
int main(void)
{
int number[] = {22, 32, 22, 82, 2};
int strchars[] = {12, 12, 12, 12, 12};
int count = sizeof(number)/sizeof(int);
print_arg(number[], strchars[]);
return 0;
}
Ich bin nicht ganz sicher, was Sie fragen, aber beachten Sie, dass 'sizeof' die Größe der Kompilierzeit eines Typs zurückgibt; für einen Funktionsparameter 'int a []', der die Größe eines '(int *)' hat, nicht die Laufzeitgröße des angenommenen Arrays, das an ihn übergeben wird. Sie haben auch die Funktionsparameter in Ihrem Beispiel schattiert, und es ist nicht klar, was Sie damit erreichen wollten. – geekosaur
Dieser Code ist auf so viele verschiedene Arten so falsch. Sorry :(Wenn Sie zB "int a []" als Parameter übergeben und dann "int a []" als Parameter deklarieren, funktioniert das nicht. Wenn Sie ein [] in eine Funktion übergeben, dann "sizeof (a)" funktioniert nicht (es wird immer "4" zurückgegeben) usw. – paulsm4
F: Was genau meinen Sie mit "jeder der Möglichkeiten, Dinge auszudrucken?" – paulsm4