01/10/2018, 09:58
Phân biệt 2 loại Pointer trong C
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.
Bài liên quan
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ớiint (*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ảngint[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àyint *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ỏint
có 5 phần tử. p là 1 con trỏ kiểuint**
trỏ đến 1 phần tử kiểuint*
. Phép toánp + 1
trả 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 + 1
trả 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
VietHQ – 5 Sep 16
Ưu tiên toán tử · VietHQ
Hôm nay mình sẽ nói về một số cái hay nhầm lẫn khi lập trình, tập trung vào những vấn đề như trên tựa đã ghi smiley (làm cái tựa for fun tý) mọi người thấy mọi