30/09/2018, 16:04

Thao tác con trỏ

int x,*p;
x=10;
*p=x;

theo sách nói đoạn chương trình này sai ở chỗ con trỏ p không được khởi tạo để nó trỏ tới một chỗ xác định, do đó nó trỏ tới một chỗ ngẫu nhiên nào đó. nếu trỏ vào chỗ quan trọng của một chương trình nào đó thì chương trình đó sẽ bị phá. vì vậy kho dùng biến con trỏ cần lưu ý cho nó trỏ tới chỗ xác định.
mọi người cho em hỏi là khởi tạo để nó trỏ tới chỗ xác định theo mọi người hiểu là ntn, em thấy hơi mơ hồ về điều này

Nguyễn Minh Dũng viết 18:08 ngày 30/09/2018

Châu không hiểu chỗ này là vì Châu chưa hiểu bản chất của con trỏ. Con trỏ là một biến, cái đặc biệt là biến này sẽ chứa địa chỉ của biến khác.

Con trỏ mà chưa xác định trỏ đến đâu có nghĩa là nó đã có chứa địa chỉ của một biến nào đó rồi. Nhưng biến nào đó mình không biết được. Dẫn đến tất cả các thao tác trên con trỏ đó sẽ ảnh hưởng đến biến nào đó mà ta không biết. Đây là một lỗi, có thể dẫn đến crash chương trình. Tức chương trình bị ngắt ngang, tắt hẳn khi đang chạy.

Châu xem thêm các bài liên quan đến con trỏ ở đây. (19, 20, 21, …)

Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây : Thông tin về khóa học xem tại đây : -Sự khác biệt giữa 2 khóa học cũ và mới : +Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả. +Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại..... Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học …

Châu Minh viết 18:17 ngày 30/09/2018

vâng để em xem lại.
p/s: e tên Châu ạ

Nguyễn Minh Dũng viết 18:12 ngày 30/09/2018

Đã sửa Có thắc mắc thì quay lại hỏi nhé.

Châu Minh viết 18:05 ngày 30/09/2018

dạ. e vẫn còn thắc mắc nhiều lắm về con trỏ, như kiểu trong danh sách liên kết ý ạ, để lấy giá trị trường info của một nút bằng con trỏ thì làm như thế nào, theo thuật toán thì = link(L) với L là con trỏ đầu tiên. em cứ loay hoay mà không ổn không biết áp dụng vào C với C++ ntn

Pika viết 18:15 ngày 30/09/2018

mình nghĩ: L.info là lấy thông tin của nút được trỏ bởi con trỏ L thôi.
còn muốn lấy thông tin của các nút sau con trỏ L thì cần phải có thêm 1 con trỏ nữa chạy.

Nguyễn Minh Dũng viết 18:06 ngày 30/09/2018

Châu đưa ra code cụ thể cho mọi người xem. Cái em học khác với cái các bạn khác học. Nói chung chung dễ dẫn đến hiểu nhầm nhau lắm

Châu Minh viết 18:17 ngày 30/09/2018

là như thế này VD:
thực hiện đổi trường info của các phần tử của danh sách nối đơn với phần tử đầu tiên được trỏ tới bằng List
theo quy tắc nếu chữ cái đều tiên = ‘a’ thì đổi thành ‘z’
đó
thì thuật toán duyệt danh sách của bọn em nó sẽ là dùng list chạy từ nút đầu tới nút cuối để kiểm tra cụ thể là
cho biến con trỏ chạy từ đầu danh sách tới cuối danh sách với (L) là con trỏ trỏ tới phần tử đầu tiên
1, if L:=null then write ("danh sách rỗng ");
2, if L<> null then while link(L)<> null do begin
“duyệt info bằng kiểm tra a[1]=‘a’ đổi thành ‘z’)//cái này e quên
làm trong pascal " trong C e làm được”
L:=link(L):
end;
đó thuật toán là như vậy nhưng e không biết áp dụng trong C ntn với cấu trúc cho trước :

struct node{
    string info ;
    node *next;
};
Châu Minh viết 18:19 ngày 30/09/2018

đề bài cụ thể là ntn ạ

Nguyễn Minh Dũng viết 18:11 ngày 30/09/2018

Ah, anh hiểu ý em rồi. Vấn đề có lẽ em chưa nắm lắm về con trỏ, mà bắt tay vào làm link list có lẽ hơi khó khăn.

Anh gợi ý là em có thể xem các bài trong phần C++ nói về con trỏ và đặc biệt phần nói về link list. Link list anh giới thiệu trong videos này là anh dùng class. Nhưng em có thể bơ nó đi và hiểu là anh đang dùng struct.

Châu Minh viết 18:11 ngày 30/09/2018

Dạ. Ok tks a.e cũng đang xem video và học c++ của a rồi.hy vọng giúp e vớ ra được nhiều thứ:(

Bài liên quan
0