このプログラムを書き直して、印刷する方法ごとに関数を使用します。これらの関数へのポインターを渡して、データで機能するようにしてください。ポインタを受け入れる関数を宣言できますが、配列のように使用することを忘れないでください。
ごきげんよう?インデックス配列とポインタインデックスの出力をループするためのcコードがあります。ここに関数のない正しいコードがあります:
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;
}
しかし、私は物事を印刷する方法のそれぞれに使用する必要があります。しかし、私には理解できません。ここでは、関数はあるがポインタと文字がない私のコードは整数のみです。それを正しくする方法を教えてください:
#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;
}