私はこれら三つの宣言の違いを把握しようとしている:
char p[5];
char *p[5];
char (*p)[5];
ような読書の宣言とスタッフのすべてのガイドが助けていないので、私は、いくつかのテストを行うことによって、これを見つけるためにしようとしています私はこれまで通り。私は、この小さなプログラムを書き、それが(私は第三宣言の使用の他の種類を試してみたと私は選択肢を使い果たしました)働いていない:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
char p1[5];
char *p2[5];
char (*p3)[5];
strcpy(p1, "dead");
p2[0] = (char *) malloc(5 * sizeof(char));
strcpy(p2[0], "beef");
p3[0] = (char *) malloc(5 * sizeof(char));
strcpy(p3[0], "char");
printf("p1 = %s\np2[0] = %s\np3[0] = %s\n", p1, p2[0], p3[0]);
return 0;
}
第一及び第二の作品を無事、と私はしました彼らが何をしているのか理解し第3の宣言の意味とそれを使う正しい方法は何ですか?
ありがとうございました!第二は、charへアレイ 5のポインタがあるのに対し
デコード宣言は、CとC++の中で私の最も好ましからざる部分です。 –