người.Ý nghĩa của 'char (* p) [5];' là gì?
Tôi đang cố gắng để nắm bắt sự khác nhau giữa ba tờ khai sau đây:
char p[5];
char *p[5];
char (*p)[5];
Tôi đang cố gắng để tìm thấy điều này bằng cách thực hiện một số xét nghiệm, bởi vì tất cả các hướng dẫn của tờ khai đọc và các công cụ như điều đó không giúp tôi cho đến nay. Tôi đã viết chương trình nhỏ này và nó không hoạt động (tôi đã thử sử dụng các loại khai báo thứ ba khác và tôi đã hết các lựa chọn):
#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;
}
Tác phẩm đầu tiên và thứ hai được rồi, và tôi đã hiểu những gì họ làm. Ý nghĩa của tuyên bố thứ ba và cách chính xác để sử dụng nó là gì?
Cảm ơn bạn!
Khai báo giải mã là phần yêu thích nhất của tôi trong C và C++. –