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) ???

viết 16:53 ngày 01/10/2018

“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 *aa++, ++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.

Jacaré Junior viết 16:56 ngày 01/10/2018

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.

Đạt Vũ viết 17:06 ngày 01/10/2018

ok tks các bác nhiều nha <3

Quang Vu viết 16:56 ngày 01/10/2018

2 cách truy cập con trỏ *(a+i)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ết a[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ách a[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.

Nguyễn Phú Thành viết 16:59 ngày 01/10/2018

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

rogp10 viết 17:07 ngày 01/10/2018

&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ả.

Bài liên quan
0