int *P[5] và int (*Q)[5] khác nhau như nào vậy ? Mình đọc trên congdongcviet mà không rõ, ai biết chỉ dùm với.
Theo mình nghĩ thì :
int (*Q)[5] là 1 mảng gồm 5 con trỏ kiểu int.
Phân biệt 2 loại Pointer trong C
Cái đầu tiên ta viết lại là int* P[5] => P là một mảng gồm 5 phần tử có kiểu dữ liệu là int*
Cái thứ hai ta viết lại là int (*Q)[5] => *Q là một mảng gồm 5 phần tử có kiểu dữ liệu là int
Mình không học C nên không biết nó viết như thế nào, trong C++ thường người ta sẽ viết là int* Q = new int[10];
int *Q = new int[10] equal với int (*Q)[10] à b ?
int *Q = new int[10]; cấp phát cho con trỏ Q vùng nhớ có thể chứa 5 phần tử int.
*(Q+i) = giá trị Decimal;
cái còn lại mình thấy k đúng.
Bạn viết code có format nhé, không là các ký tự đặc biệt bị ẩn hết đi đấy. Dùng cái dấu bên cạnh số 1 ý:
ok rồi, b giải thích tiếp cho mình đi.
Mình chưa thực hành thử, tại vừa mới search google thấy có 2 kết quả được đánh tick trên StackOverFlow cùng một câu trả lời: https://stackoverflow.com/questions/13910749/difference-between-ptr10-and-ptr10 và https://stackoverflow.com/questions/21972794/what-the-difference-between-int-v10-and-int-p10
Nếu theo cách giải thích thì: int (*Q)[5] là con trỏ Q trỏ tới 1 mảng int[5]
thì cũng sẽ giống như có 1 mảng int a[5]; rồi cho 1 con trỏ trỏ tới mảng a này
int *K = a;
nhưng *(K+i) = giá trị của phần tử mảng còn *(Q+i) thì ra cái quái gì
Hi Nguyen Trong Dung.
-
int *P[5]viết lạiint* p[5]khai báo mảng kiểu con trỏintcó 5 phần tử. p là 1 con trỏ kiểuint**trỏ đến 1 phần tử kiểuint*. Phép toánp + 1trả về 1 con trỏint**trỏ đến vị trí cáchp sizeof(int*) -
int (*Q)[5]khai báo 1 con trỏ trỏ đến biến có kiểu dữ liệuint [5]. Phép toánq + 1trả về 1 con trỏ trỏ đến biến có kiểu dữ liệuint [5]cách ```q sizeof(int [5]).
P/S Đang code để kiểm tra.
Ra error 
int* P[5] là mảng 5 con trỏ, còn int (*Q)[5] là con trỏ trỏ đến mảng 5 int.
Câu này có thể trả lời với toán tử typeid() của C++11 hoặc extension với C (gcc).
Cái này liên quan đến ưu tiên toán tử. Có thể xem ở đây

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?