Truyền mảng vào hàm có dùng Pointer

Chào mọi người.

Em từng đọc được trên google là mảng được truyền vào hàm như một pointer. Nhưng trong đoạn code sau, tại sao ta lại dùng thêm kí tự * nữa ạ.

int Function(char *s[ ], int n);

Ý nghĩa của * là gì và khác gì so với

int Fuction(char s[ ], int n);

Nếu không phải là truyền vào hàm, mà chỉ khai báo như vầy thì bạn có biết được sự khác nhau giữa:

char *s[N];

char s[N];

không?

Ý nghĩa của * là gì?

3 Likes

Mình chỉ thấy người ta hay viết là:

int Function(char* s, int n) // Cach 1
int Function(char s[], int n) // Cach 2. Hai cách này giống nhau.

Do C style array khi truyền vào hàm bị decay về pointer.
Còn kiểu char* s[] thì hơi lạ nhỉ, chả nhẽ là array của pointer?

Chả lạ gì, mà bạn đoán đúng rồi đấy. Thế mới có cái gọi là con trỏ cấp n chứ.

char c;
char s[];
char* s;
char** ss;
char*** sss;
char** sss[];
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?