01/10/2018, 09:58

Trong câu lệnh 'char** hihi(char *a,int b)' thì char** có nghĩa là gì

ae cho hỏi trong câu lệnh Char** hihi(char a,int b) ; thì char* có nghĩa là gì nếu là 1 dấu * thì nó nghĩa là hàm trả về 1 pointer còn 2 dấu ** thì đệ chịu:))))

Khoa NTA viết 12:00 ngày 01/10/2018

Bạn thích gọi “hàm” là “lệnh” nhỉ tụi nó đâu giống nhau đâu.
char ** là pointer trỏ tới pointer khác :v (đem chữ “con trỏ” vào sẽ khó hiểu). Nôm na thì bạn có thể hiểu là nó có thể dùng nó giống như mảng 2 chiều (chỉ là “nôm na” cho dễ hiểu chứ bản chất thì nó là con trỏ, không phải mảng :v).

Vậy nếu muốn trỏ tới con trỏ cấp 2 (char **) thì dùng 1 con trỏ cấp 3 …

Trần Hoàn viết 12:01 ngày 01/10/2018

char
char* = (char)*
char** = (char*)*
char[] = (char)[]
char[][] = (char[])[]
char*[] = (char*)[]

Cứ thế phát triển lên, ta có thể có con trỏ cấp n, mảng n chiều. Và khi trộn lẫn các kiểu enumerator với nhau thành kiểu std::vector<int*>*[] thì anh em cũng chịu, chẳng biết gọi tên ra sao May mà C chỉ có * với [] thôi đấy.

Bài liên quan
0