構造体でポインタを扱うところまできたのですが、ここでつまづいてしまいました。
以下のコードより2つ質問させて頂きたいです。
C
1#include <stdio.h> 2#include <string.h> 3 4// 学生のデータを入れる構造体 5typedef struct { 6 int id; 7 char name[256]; 8 int age; 9} student_data; 10 11// 構造体のデータを表示する関数 12void setData(student_data*, int, char*, int); 13void showData(student_data*); 14 15int main() { 16 student_data data[4]; //1つ目の質問 17 int i; 18 int id[] = {1, 2, 3, 4}; 19 char* name[] = {"山田太郎", "佐藤良子", "太田峰", "中田優子"}; //2つ目の質問 20 int age[] = {18, 19, 18, 18}; 21 22 // データの設定 23 for (i = 0; i < 4; i++) { 24 setData(&data[i], id[i], name[i], age[i]); 25 } 26 // データの内訳を表示 27 for (i = 0; i < 4; i++) { 28 showData(&data[i]); 29 } 30} 31 32// データのセット 33void setData(student_data* data, int id, char* name, int age) { 34 data -> id = id; // idのコピー 35 strcpy(data -> name, name); // 名前のコピー 36 data -> age = age; // 年齢のコピー 37} 38 39// データの表示 40void showData(student_data* data) { 41 printf("学生番号:%d 名前:%s 年齢:%d \n", 42 data -> id, data -> name, data -> age); 43} 44```1つ目の質問は、 45main関数のstudent_data data[4]の 46data[4]が何を意味しているのか教えて欲しいです。 47 482つ目の質問は、 49main関数の中のchar型をなぜポインタ型で宣言しているのかを教えて欲しいです。
回答1件
あなたの回答
tips
プレビュー