Tui đang học hết C ( Học trong sách Lập Trình C của Quách Tuấn Ngọc) rồi bây giờ chuyển sang học C++/Lập trình hướng đối tượng ( 1 Sách của Trần Văn Ất và 1 sách của nhiều tác giả ,Đại Học Bách Khoa Hà Nội xuất bản ấy) Hồi đó học C chỗ con trỏ tui cũng chưa hiểu hết ,nhất là cái chỗ ứng dụng của nó ấy ,lúc nào thì khai báo địa chỉ ô nhớ,lúc nào thì khai báo giá trị.Bây giờ chuyển sang học con trỏ đối tượng tui đọc hổng hiểu gì hết .Ai rành C/C++ giải thích giúp tui cái ứng dụng của con trỏ với Cho càng nhìu ví dụ càng tốt ,cảm ơn anh em trước nhé
hãy nhớ kỹ câu này : "miền giá trị của một biến con trỏ là địa chỉ ô nhớ" VD khi khai báo : int *a thì a là một biến con trỏ kiểu số nguyên, miền giá trị của biến a là địa chỉ ô nhớ thông thường có 2 cách để sử dụng biến con trỏ : - một là dùng để giữ điạ chỉ của biến khác. VD : int n = 7 ; int *a = n ; thì lúc này miền giá trị của biến con trỏ a sẽ là địa chỉ ô nhớ của biến n và miền giá trị của biến n là 7 - hai là sử dụng biến con trỏ để xin cấp phát và thu hồi bộ nhớ, cái này mình cũng ko rành cho lắm nên ko dám nói nhiều :P
Con trỏ đa số ứng dụng là để truy xuất địa chỉ của kiểu dữ liệu tương ứng với con trỏ.Nói chung muốn lưu trữ được địa chỉ của kiểu dữ liệu thì dùng con trỏ kiểu dữ liệu tương ứng. Khi học lập C\C++ cơ bản hay hướng đối tượng thì chưa cần học con trỏ gấp lắm biết sơ cũng được rùi.Sau này học datastructure thì hãy quan tâm thật kỹ tới con trỏ vì nếu hông là.....tiêu luôn^^. Nói chung con trỏ để lưu địa chỉ.Có địa chỉ thì dễ thao tác hơn như nhập nội dung,gán địa chỉ mới,xóa nội dung,...... Ủa mà đâu có phải là kháchma bên box War3 hông nhỉ?
Đúng rồi ,khachma2004 bên box WarCraft 3 đấy .Tự nhiên bây giờ nghiền học lập trình quá , mà tui lại kô phải dân IT ,kô biết có thi nhầm trường hay kô ,mấy cái anh em nói tui biết hết rồi nhưng chỉ kô hiểu cái ứng dụng thôi Chắc ráng đọc thêm sách thêm vây ,dù sao cũng cám ơn anh em
Theo tui thấy ông học lập trình thì nên phân ra như vậy đi: Winform và Webform,hệ thống & hệ điều hành,ứng dụng di động. Học 3 cái C\C++ này nói thiệt đa số áp dụng trong hệ thống & hệ điều hành,lập trình phần cứng,những ứng dụng lớn lớn. Theo tui ông nên đi về Web hoặc Winform đi cho nó dễ làm vì đa số có tool hổ trợ cũng nhiều. Mà nếu ông có học thì học thuật toán ấy vì thuật toán cần hơn học ba cái C\C++ này ở VN hông có tương lai cho lắm T___T!!
con trỏ dùng để ghi lại địa chỉ của một điểm trong bộ nhớ, lưu trữ một giá trị nào đó giả sử bây giờ có 1 class, gồm 1 biến là con trỏ, 1 biến là dữ liệu cần lưu, khi muốn truy cập vào cái dữ liệu trong class này, cần một con trỏ chỉ đến class này, và trong một class có thể có các biến, các method mà client cần đến khi tạo một object mới, tên đặt cho object thực ra k0 phải tên của object mà là tên của cái con trỏ chỉ vào object đó, nếu có câu lệnh đặt contrỏ1 = contrỏ2 thì con trỏ 1 sẽ chỉ vào object mà con trỏ 2 đang chỉ vào, nếu object trước đó được con trỏ 1 chỉ vào mà k0 con một con trỏ nào khác chỉ vào thì object đó coi như biến mất, k0 còn sử dụng được nữa và sẽ được xóa đi một ví dụ ứng dụng con trỏ là thế này: giả sử cậu có 1 danh sách học sinh, cậu muốn tạo một chuỗi các object mà khi cậu có 1 object này, cậu lại tìm được đến cái object tiếp sau đó để lần lượt in ra tên các học sinh thì làm thế nào tạo 1 class student, trong class đó có 1 biến là con trỏ, biến con trỏ có thể là một object của một class hoàn toàn khác, mỗi con trỏ sẽ chỉ đến một object đằng sau đó, khi đó việc in lần lượt dữ liệu của cả chuỗi chỉ cần một đoạn while loop là xong, hoặc nếu biết kích thước của danh sách có thể dùng for loop thông cảm hình vẽ vội xấu quá :'>
Vẽ hình hình như có chút sai sót rùi đó: Eo ->đối tượng 1 thì đúng nhưng từ con trỏ E1 lại toàn đi trỏ vào con trỏ của đối tượng tiếp theo mà lại hông chỉ vào data của đối tựong tiếp theo đó và cứ thế tới hết thì những con trỏ còn lại toàn chỉ vào NULL mà thui. Tốt nhất nên dùng kiểu vẽ đối tượng như vậy cho dễ hiểu mà còn có thể thêm vào con trỏ xuôi trỏ ngược đều ok. _____________________________ |[con trỏ pre][data][con tro next]|
Đúng vậy mình lầm xin lỗi.Vậy xin đính chính lại con trỏ trong cấu trúc datastruct phải trỏ vào đối tượng tiếp theo.
Con trỏ là một trong những phần trọng tâm nhất của C++ .Nếu học C++ mà không hiểu được con trỏ là một điều cực kì đáng tiếc .Nhưng một khi đã hiểu được nó rồi thì lại thấy nó rất dễ ,dễ tới mức học rồi mà không hiểu gì 1.Nói về ứng dụng của con trỏ thì rất ít đối với những bài toán bình thương đơn giản như: - Hoán đổi giá trị của hai biến chẳng hạn .(ví dụ :điển hình có trong sách :teach your self c++ 21 days trong phần con trỏ) - Thay đổi giá trị xong không muốn đụng đến biến . - Tiết kiệm bộ nhớ và công sức để khai báo nhiều biến trong một chương trình dễ gây nhầm lẫn và làm chương trình nặng ,phức tạp. 2.Nói về cao cấp thì có thể thấy rõ nhất trong cơ sở dữ liệu và danh sách liên kết. - Đối với mảng hay mảng động ta chỉ có thể khai báo được một số phần tử mặc định nhưng đối với danh sách liên kết ta có thể làm mọi thứ thêm bớt phần tử ,xóa ,chèn ....Giúp ta quản lí được nhiều yếu tố hơn . Ví dụ:điển hình là một chương trình quản lí và sắp xếp sinh viên theo số báo danh. "Nếu thích hãy tự mình gõ lại code bài này:" chương trình dùng để quản lí một loạt sinh viên và tạo thành một danh sách liên kết giúp người dùng dễ quản lí và xem xét. 3.Qua vài ví dụ ở trên ta có thể thấy rất nhiều công dụng của nó và sự linh hoạt của con trỏ. A.Vậy con trỏ là gì ? - Con trỏ là một biến (kiểu địa chỉ ) chứa địa chỉ của biến khác . - Ta sử dụng toán tủ * để lấy giá trị của địa chỉ mà con trỏ đang trỏ tới . - Ta sủ dụng toán tử & để lấy địa chỉ của địa chỉ mà con trỏ đang trỏ tới . B.Câu lệnh: kiểu trả về *tên con trỏ; //cách khai báo một con trỏ tên con trỏ = & tên biến;//cách khai báo sử dụng con trỏ cho một biến C.Toán tử "new" và "delete" - Ta dùng toán tử "new" để cấp phát một vùng nhớ cho con trỏ sử dụng để chứa địa chỉ của biến khác. Câu lệnh: têncontrỏ=new kiểutrảvề; - Sau câu lệnh này sẽ trả về địa chỉ của ô nhớ đầu tiên của vùng nhớ mà nó được cấp phát. - Ta dùng toán tử "delete" để xóa con trỏ trả lại bộ nhớ cho máy tính .Nếu không thực hiện bước này mặc định sau khi chạy chương trình xong thì toàn bộ vùng nhớ đã được cấp phát sẽ được giải phóng . D.Những chú ý: - Con trỏ có một số điều giống với tham chiếu .Khi thao tác trên con trỏ thì dữ liệu của biến mà con trỏ đang trỏ tới cũng bị thay đổi theo giống như sử dụng tham chiếu . - Sau khi con trỏ đã trỏ tới một biến này nay lại trỏ tới biến khác thì biến ban đầu mà con trỏ trỏ tới không bị mất mà nó vẫn nằm trong bộ nhớ .Sau khi ra khỏi chương trình thì các đối tượng này mới bị xóa. E.Danh sách liên kết (Cực hay ) - Như đã nói ở trên khi sử dụng con trỏ trỏ tới một biến thì những gì ta làm trên con trỏ cũng như tác động đến biến .Hãy nhớ rõ điều này vì danh sách liên kết dựa chủ yếu trên điều này của con trỏ . - Khi bạn học đến phần này đảm bảo rằng thầy cô sẽ nói là danh sách liên kết như một cái dây thừng có nhiều nút mà một nút có hai phần đó là data và một con trỏ có tác dụng trỏ đến nút tiếp theo. Xét ví dụ lớp sinh viên ở trên Các bạn thấy rõ tôi viết riêng cả 3 phần tách biệt nhau cho thật tường minh và cho các bạn dễ hiểu . a.Data là lớp sinh viên gồm có tên điểm và số báo danh. b.Nút gồm Data và một con trỏ trỏ tới nút tiếp theo. c.Một lớp danh sách . Ở đây quan trọng nhất là hàm chèn. Hãy nắm chắc trong đầu rằng khi con trỏ trỏ tới một biến thì những gì tác động lên con trỏ sẽ ảnh hưởng đến biến.Nếu chỗ nào không hiểu đơn giản chỉ việc vẽ hình . Bạn hãy coi con trỏ trong danh sách liên kết là một con "MA" có thể nhập vào hết đối tượng này đến đối tượng khác . Hãy nghiền ngẫm đọc từng đoạn code . Hãy chú ý đến các phương thức get,set và cách hoạt động của nó . Nếu không hiểu thì post bài hỏi tiếp đừng cố hiểu để rồi tẩu hỏa nhập ma.
Con trỏ next là gì ? Hàng , đợi , ds liên kết đơn , ds liên kết kép , ds liên kết vòng ? Em ko hỉu mấy cái đó !!! Anh chị chỉ dùm nha !