‫Xin chào và chào mừng.
‫Trong bài giảng này, chúng ta sẽ tìm hiểu về các tham chiếu và thay thế cho con trỏ, và chúng ta sẽ xem tại sao chúng khác
‫nhau, tại sao chúng ta có thể muốn sử dụng chúng.
‫Hãy đi sâu vào và xem.
‫Vì vậy, cũng như con trỏ, có một khái niệm liên quan rất giống nhau được gọi là tham chiếu.
‫Bây giờ cả con trỏ và tham chiếu về cơ bản chỉ là một địa chỉ bộ nhớ.
‫Cả hai đều lưu trữ một tham chiếu đến nơi có thể tìm thấy một biến khác, và theo cách này, chúng cực kỳ
‫giống nhau.
‫Sự khác biệt giữa cả hai về cơ bản nằm ở việc liệu họ có thể được chỉ định lại hay không.
‫Về cơ bản, chúng có thể trỏ đến một địa chỉ khác sau khi chúng được tạo lần đầu không?
‫Trong trường hợp của một con trỏ, câu trả lời đó là có.
‫Bạn có thể thay đổi một con trỏ để trỏ đến một địa chỉ bộ nhớ mới, một tác nhân mới, một thành phần mới bất cứ khi
‫nào bạn muốn, miễn là nó có đúng kiểu.
‫Mặt khác, một tham chiếu chỉ có thể được thiết lập một lần khi bạn tạo nó lần đầu tiên để trỏ đến
‫một biến khác, sau đó không thể thay đổi lại nó.
‫Và đây là một tính năng an toàn vì việc bổ nhiệm lại các biến có thể dẫn đến các vấn đề trong
‫đó các biến đó có thể biến mất hoặc nơi bạn đặt con trỏ đó thành null.
‫Con trỏ null về cơ bản là một con trỏ trỏ đến không có gì và cố gắng thực hiện nội dung với một con trỏ được đặt thành không
‫có gì thực sự có thể làm hỏng động cơ của bạn, đây không phải là một kết quả lý tưởng với các tham chiếu vì bạn phải cung cấp cho chúng
‫một giá trị khi bạn lần đầu tạo ra chúng.
‫Chúng không thể là null, vì vậy bạn không thể gặp phải những sự cố con trỏ null này.
‫Vì vậy, chúng ta hãy bắt đầu xem xét một số cú pháp liên quan.
‫Vì vậy, khi bạn truy cập nội dung bằng con trỏ, bạn phải sử dụng một số cú pháp đặc biệt.
‫Bạn phải đặt ngôi sao này trước con trỏ để đảm bảo rằng bạn đang nhận giá trị trong con trỏ,
‫không phải địa chỉ bộ nhớ với các tham chiếu vì bạn không bao giờ thực sự cần nắm giữ địa chỉ bộ nhớ.
‫Bạn chỉ có thể sử dụng biến như thể nó là biến mà nó trỏ đến.
‫Bạn không phải sử dụng bất kỳ cú pháp đặc biệt nào.
‫Bây giờ có quyền truy cập địa chỉ, vì vậy với con trỏ, bạn sẽ tự động nắm giữ địa chỉ.
‫Khi bạn sử dụng biến với một tham chiếu, bạn phải sử dụng cú pháp đặc biệt.
‫Để làm điều đó, bạn phải sử dụng địa chỉ của toán tử và về cơ bản nó sẽ giúp bạn
‫có cùng địa chỉ với biến ban đầu.
‫Và sau đó là thay đổi địa chỉ bằng một con trỏ.
‫Chúng tôi thấy rằng bạn có thể chỉ định địa chỉ và sử dụng địa chỉ của nhà điều hành để thực hiện điều đó với các tham chiếu.
‫Điều này không được phép, vì vậy không có cú pháp nào cho nó.
‫Và cuối cùng, điều gì sẽ xảy ra nếu chúng ta muốn thay đổi giá trị mà chúng ta đang trỏ đến, không phải địa chỉ mà là giá
‫trị thực tế đang được lưu trữ tại địa chỉ đó?
‫Vâng, với các con trỏ, bạn phải sử dụng lại một số cú pháp đặc biệt.
‫Chúng ta phải đặt ngôi sao đó và sau đó chỉ định một cái gì đó.
‫Vì vậy, con trỏ diễn viên mà bạn gán cho con trỏ tác nhân ngôi sao với các tham chiếu một lần nữa vì bạn không thể thay đổi địa chỉ thực,
‫bạn không cần bất kỳ cú pháp bổ sung nào.
‫Chúng ta có thể bỏ cú pháp bổ sung và chỉ có tham chiếu diễn viên bằng.
‫Actor có nghĩa là bạn đang ghi đè giá trị trong vị trí được trỏ tới.
‫Vì vậy, đó là tất cả một chút lý thuyết.
‫Hãy lấy một ví dụ thực tế.
‫Vì vậy, nếu chúng tôi có một phao có thể lưu trữ thiệt hại gây ra cho chúng tôi trong trò chơi và trong đó chúng tôi đang lưu trữ thiệt
‫hại hiện tại được đặt thành 0.
‫Không ai gây ra bất kỳ thiệt hại cho chúng tôi.
‫Bây giờ chúng ta có thể muốn tạo một tham chiếu đến điều này để thay vì sao chép xung quanh, chúng ta có thể
‫muốn chuyển nó vào một hàm, nhưng không thực sự thay đổi nó.
‫Cách chúng ta có thể làm là có một phao và sau đó đặt ký hiệu và sau phao.
‫Và dấu và nói rằng đây là một tham chiếu đến một phao.
‫Bản thân nó không phải là một float mới, không cấp phát bất kỳ bộ nhớ float nào.
‫Nó chỉ cấp phát một bộ nhớ con trỏ.
‫Và vì vậy chúng ta có thể gọi đây là giới thiệu sát thương và chúng ta có thể đặt nó bằng sát thương.
‫Chúng tôi không cần phải lấy địa chỉ của hoặc làm bất cứ điều gì tương tự.
‫Nó tự động biết, tốt, đây là một tham chiếu và đây là một biến.
‫Vì vậy, những gì bạn đang cố gắng làm ở đây là thiết lập một tham chiếu đến biến đó.
‫Và chắc chắn, nếu chúng tôi đi và bạn ghi lại, thì chúng tôi có thể in nó như thể nó chỉ là một phao thông thường, vì
‫vậy chúng tôi có thể nói thiệt hại dấu hai chấm và sau đó là phần trăm F và sau đó ở đây chúng ta có thể thực hiện chỉ in thiệt hại tham chiếu.
‫Chúng tôi không cần bất kỳ cú pháp đặc biệt nào.
‫Chúng ta có thể sử dụng nó giống như một biến thông thường.
‫Hãy tiếp tục và chơi sau khi biên dịch, hãy xem nhật ký đầu ra của chúng tôi và đủ chắc chắn, thiệt hại
‫sẽ xuất hiện ở mức 0, đó là giá trị mà chúng tôi đã đặt.
‫Nhưng điều đó không nhất thiết chứng minh rằng tôi đã không tạo bản sao của biến ban đầu đó.
‫Vì vậy, hãy giả sử thách thức bạn thử thay đổi giá trị và xem điều gì sẽ xảy ra.
‫Vì vậy, sử dụng tham chiếu, tham chiếu đến thiệt hại để thiết lập một giá trị mới và sau đó in ra giá trị ban
‫đầu để giá trị ban đầu bên cạnh giá trị tham chiếu và có một cái nhìn.
‫Chúng giống nhau hay chúng khác nhau?
‫Bạn chỉ thay đổi tham chiếu, nhưng nó có thay đổi cả bản gốc không?
‫Bởi vì điều đó có nghĩa là cả hai đều là cùng một biến.
‫Tạm dừng video và tiếp tục.
‫Được chứ.
‫Chào mừng trở lại.
‫Vì vậy, chúng ta hãy cho điều này một đâm.
‫Vì vậy, để thay đổi tham chiếu bây giờ, chúng ta sẽ gây sát thương cho ref bằng.
‫Và lần này tôi sẽ nói rằng chúng tôi đã gây ra năm thiệt hại và lưu ý rằng tôi không phải sử dụng bất kỳ cú pháp đặc biệt nào
‫ở đây.
‫Nó không bổ nhiệm lại tham chiếu bởi vì chúng tôi đã khai báo nó và thiết lập tham chiếu của nó trên dòng
‫đầu tiên khi nó được tạo.
‫Chúng tôi không thể làm điều đó một lần nữa.
‫Vì vậy, bây giờ chúng ta chỉ có thể thiết lập giá trị.
‫Vì vậy, những gì tôi có thể làm bây giờ là chúng tôi đã có thiệt hại, giới thiệu trong nhật ký.
‫Hãy cũng đặt sát thương và phần trăm f vào cùng một chuỗi đó và sau đó chuyển sát thương vào đây.
‫Và sau đó chúng tôi sẽ biên dịch và xem xét.
‫Hãy chơi thử, vào nhật ký đầu ra của chúng tôi và chắc chắn, nó in ra ref và damage vì cả hai đều có
‫giá trị mới mà chúng tôi đã đặt giá trị là năm.
‫Vì vậy, về bản chất, những gì chúng ta có ở đây là hai biến trỏ đến cùng một phần bộ nhớ.
‫Bạn gần như có thể nói rằng chúng là cùng một biến, nhưng có tên khác nhau.
‫Vì vậy, điều này có lợi ích là không cần một bản sao, giống như một con trỏ, nhưng nó cũng có nhiều lợi ích hơn
‫vì nó dễ sử dụng hơn rất nhiều.
‫Chúng tôi không cần tất cả những cú pháp bổ sung đó và nó cũng an toàn hơn khi sử dụng.
‫Vì vậy, miễn là chúng ta không cần phải trỏ lại bất cứ điều gì, sử dụng tài liệu tham khảo nói chung là tốt hơn.
‫Bây giờ chúng ta hãy xem xét nhanh một số ký hiệu mà chúng tôi sử dụng ở đây vì chúng có thể hơi khó hiểu.
‫Chúng được sử dụng rất nhiều trong C ++.
‫Vì vậy, các ký hiệu và và các biểu tượng ngôi sao, chúng ta hãy xem xét chúng trong ngữ cảnh và ý nghĩa của chúng.
‫Vì vậy, khi chúng ta đang sử dụng chúng, vì vậy khi chúng ta sử dụng chúng trong một biểu thức, đây là một số ví dụ về mã.
‫Bạn có thể thấy dấu sao trước một biến.
‫Bạn có thể thấy dấu và trước một biến.
‫Điều đó có nghĩa là gì?
‫Chà, với biểu tượng ngôi sao, cú pháp đặt nó trước biến có nghĩa là chúng ta đang nhận
‫nội dung tại con trỏ tác nhân bằng dấu và.
‫Nếu bạn đặt dấu và trước một biến hoặc trước một tham chiếu đến một biến, điều đó
‫nói rằng nó đang nhận địa chỉ của biến đó.
‫Đó là lấy địa chỉ của diễn viên hoặc địa chỉ mà tham chiếu chỉ đến.
‫Bây giờ khi chúng ta khai báo, chúng ta đang sử dụng nó trong kiểu biến, các dấu sao và dấu và hầu như
‫có ý nghĩa trái ngược nhau.
‫Vì vậy, ngôi sao có nghĩa là đây là một con trỏ đến một diễn viên mới, và dấu và có nghĩa là đây là một tham chiếu đến
‫một diễn viên mới.
‫Vì vậy, chỉ cần nhớ điều này, rằng có một tập hợp ý nghĩa hoàn toàn khác nhau,
‫cho dù bạn đang sử dụng chúng với một biến trong một biểu thức hay bạn đang sử dụng chúng trong kiểu khai báo một biến.
‫Bây giờ, tôi sẽ không đi sâu vào nó quá nhiều chi tiết, nhưng để thêm vào sự xúc phạm đến thương tích,
‫những điều này thực sự có thể có những ý nghĩa khác trong các ngữ cảnh khác mà ký hiệu và có thể có nghĩa là một chút khôn ngoan, và ngôi
‫sao, như chúng ta đã thấy, có thể được sử dụng với các chuỗi trong nhật ký U.
‫Vì vậy, đây không nhất thiết phải là tất cả các ý nghĩa của hai biểu tượng này, nhưng
‫chúng là khá nhiều ý nghĩa quan trọng đề cập đến con trỏ và tham chiếu.
‫Công cụ tuyệt vời.
‫Vì vậy, chúng ta đã tìm hiểu về con trỏ, tham chiếu, cách chúng liên quan với nhau, chúng khác nhau như thế nào và tại
‫sao chúng ta có thể muốn sử dụng chúng.
‫Hẹn gặp lại các bạn trong bài giảng tiếp theo.