01/10/2018, 14:53
Về sử dụng con trỏ trong mảng 1 chiều
Các bác cho em hỏi là khi mà mình dùng con trỏ để viết hàm tính toán trong mảng 1 chiều ấy.
mình dùng a[i] với *(a+i) theo em biết là nó không khác nhau, nhưng dùng a[i] có thể hiện được mình dùng con trỏ hay không ạ, hay là nhất thiết phải *(a+i) ???
Bài liên quan
“dùng con trỏ” là sao? Là dạng bài tập sử dụng con trỏ à? Nếu vậy thì chỉ được xài
*a
vàa++
,++a
,--a
,a--
thôi nhé ko có*(a+i)
gì hết, vì nếu cho xài*(a+i)
thì chỉ cần thay thếa[i]
thành*(a+i)
hết là “xong” bài tập con trỏ thì ko phải là dùng con trỏ đâu.mảng chính là con trỏ rồi chứ gì nữa ???
sử dụng con trỏ là gồm truyền hàm vào hàm, con trỏ mảng tới hàm, các phép tính con trỏ, cái bạn nói chỉ là mối quan hệ giữa mảng với con trỏ thôi.
ok tks các bác nhiều nha <3
2 cách truy cập con trỏ
*(a+i)
vàa[i]
là như nhau mà. Lúc mới học mình cũng thích dùng*(a+i)
vì muốn phân biệt với mảng. Nhưng làm nhiều thành ra quen nên cứ viếta[i]
cho nó tiện hơn. Với cả nếu bạn làm mảng 2 chiều với con trỏ cấp 2 thì cácha[i][j]
ngắn gọn hơn, nếu không phải viết kiểu này*(a+i*m+j)
khá bất tiện.mảng ko phải con trỏ chứ cái giống ở đây là cái cách nó truy cập mới giống con trỏ chứ mảng ko phải con trỏ cái cách nó trỏ tới để truy cập đến vị trí tại đó mới giống con trỏ đừng nhầm lẫn
con trỏ là nơi chứa địa chỉ truy cập đến đâu đó = cách trỏ đến địa chỉ đó và lấy
mảng là nơi chứa giá trị truy cập đến đâu đó = cách trỏ đến vị trí đó và lấy
&a và a là như nhau với a là mảng.
a+i và i+a thực chất là hai phép tính khác nhau (do a, i khác kiểu) nhưng có cùng một kết quả.