Phân biệt biến con trỏ và tham chiếu trong lập trình C++

MỤC LỤC

4.C++ Identifiers

Identifiers C++ đại diện cho các yếu tố thiết yếu được đưa ra trong chưuong trình 2. Về mặt kỹ thuật, tham chiếu là 1 cách tương tác vào vùng nhớ của biến khác nhưng lại không thể tương tác (lấy địa chỉ, gán địa chỉ tham chiếu mới) vào vùng nhớ trung gian này như trong trường hợp của con trỏ.  Một con trỏ có thể nhận giá trị null trong khi một tham chiếu thì không thể.

 Một con trỏ có thể khởi tạo bất cứ lúc nào, trong khi một tham chiếu phải được khởi tạo ngay khi nó được khai báo. Nói cách khác, câu lệnh sau trình biên dịch sẽ báo lỗi: int &k; // error.  Một con trỏ có thể trỏ đến nhiều đối tượng, trong khi một tham chiếu chỉ được tham chiếu tới một đối tượng duy nhất.

 Con trỏ có thể lưu trữ vùng nhớ cấp phát động, tham chiếu thì không thể. Trong hình minh hoạ trên, biến con trỏ (có địa chỉ là FF) sẽ quản lý vùng nhớ của chuỗi STDIO.VN (bắt đầu từ địa chỉ D0). Sử dụng * giữa kiểu dữ liệu và tên biến có nghĩa là biến đang khai báo là một biến con trỏ.

Con trỏ chỉ lưu giữ địa chỉ nên khi gán giá trị cho một con trỏ, giá trị đó phải là địa chỉ. Dereference operator dùng để lấy nội dung của địa chỉ mà biến đó trỏ vào.

8.Primitive arrays

-Mảng: Là 1 loạt các phần tử cùng kiểu được đặt ở các vị trí bộ nhớ liền nhau có thể tham chiếu riêng lẻ bằng cách thêm một chỉ mục vào một mã định danh duy nhất. Kiểu dữ liệu Tên mảng [số lượng phần tử mảng] = {Giá trị của các phần tử mảng}.

9.Primitive String

Để tìm hiểu rừ hơn về cỏc lệnh điều kiện trong C++, bạn đọc cựng tham khảo tiếp bài viết dưới đây của Taimienphi.vn. Trong bài học C++ tiếp theo dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn về lệnh điều kiện trong C++. Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Taimienphi.vn để tìm hiểu thêm về vòng lặp trong C++ là gì nhé.

10.LỆNH ĐIỀU KIỆN TRONG C++

Else cũng là một lệnh điều kiện If, được sử dụng để thực thi khối câu lệnh khi điều kiện được đánh giá là True, ngược lại nếu điều kiện được đánh giá là False khối câu lệnh sẽ không được thực thi. Lệnh break trong mỗi case label được sử dụng để thoát khỏi phần thân lệnh switch, và được sử dụng ở cuối mỗi case label. Trình vòng lặp(iterators) là một đối tượng được thiết kế để duyệt qua một vùng chứa(mảng, vector,.) (ví dụ: các giá trị trong một mảng hoặc các ký tự trong một chuỗi), cung cấp quyền truy cập vào từng phần tử khi nó lặp.

Ví dụ: một vùng chứa mảng có thể cung cấp một trình vòng lặp chuyển tiếp đi qua mảng theo thứ tự chuyển tiếp và một trình vòng lặp ngược đi qua mảng theo thứ tự ngược lại. Khi loại trình vòng lặp thích hợp được tạo, lập trình viên sau đó có thể sử dụng giao diện do trình vòng lặp để duyệt và truy cập các phần tử mà không phải lo lắng về loại trình duyệt đang được thực hiện hoặc cách dữ liệu được lưu trữ trong vùng chứa. Và bởi vì các trình vòng lặp C ++ thường sử dụng cùng một giao diện cho truyền tải (toán tử ++ để di chuyển đến phần tử tiếp theo) và truy cập (toán tử * để truy cập phần tử hiện tại), chúng ta có thể lặp qua nhiều loại vùng chứa khác nhau bằng một phương pháp nhất quán.

Loại trình lặp đơn giản nhất là con trỏ (sử dụng con trỏ số học) hoạt động cho dữ liệu được lưu trữ tuần tự trong bộ nhớ. Ở trên, chúng ta đã khai báo hai biến: begin (trỏ đến đầu vùng chứa của chúng ta) và end (đánh dấu điểm kết thúc). Đối với mảng, điểm đánh dấu kết thúc thường là vị trí trong bộ nhớ mà phần tử cuối cùng sẽ ở nếu vùng chứa chứa thêm một phần tử.

Sau đó, con trỏ lặp lại giữa đầu và cuối, và phần tử hiện tại có thể được truy cập bằng cách chuyển hướng thông qua con trỏ. Nhưng điều này gây ra hành vi không xác định, vì mảng [std :: size (array)] truy cập vào một phần tử nằm ở cuối mảng. Lặp lại(iterators) là một hoạt động phổ biến mà tất cả các vùng chứa thư viện chuẩn cung cấp hỗ trợ trực tiếp cho việc lặp lại.

Hiện tại, đừng lo lắng về các loại trình vòng lặp, chúng ta sẽ truy cập lại các trình vòng lặp trong chương sau. Tất cả các kiểu có hàm thành viên bắt đầu và kết thúc hoặc có thể được sử dụng với std :: begin và std :: end đều có thể được sử dụng trong các vòng for- dựa trên phạm vi (vì thông tin kiểu không chứa độ dài của mảng). Bạn sẽ tìm hiểu cách thêm các hàm vào các kiểu của mình sau để chúng cũng có thể được sử dụng với các vòng lặp for dựa trên phạm vi.

Một số thao tác sửa đổi vùng chứa (chẳng hạn như thêm một phần tử vào std ::. vector) có thể có tác dụng phụ là khiến các phần tử trong vùng chứa thay đổi địa chỉ. Tài liệu tham khảo tốt về C ++ cần lưu ý các hoạt động vùng chứa nào có thể hoặc sẽ làm mất hiệu lực của các trình vòng lặp.

12.Vòng lặp trong C++

// erase() invalidates iterators to the erased element (and subsequent elements) // so iterator "it" is now invalidated.

Các lệnh điều khiển vòng lặp trong C++

Kết thúc vòng lặp hoặc lệnh switch và chuyển sang thực thi vòng lặp hoặc lệnh switch ngay sau nó. Khi gặp lệnh này thì chương trình sẽ bỏ qua các câu lệnh ở dưới nó (trong cùng một câu lệnh lặp) để thực hiện vòng lặp mới. Mặc dù vậy, nó được khuyên rằng không nên sử dụng lệnh goto trong chương trình của bạn.

Bạn hãy viết chương trình nhập vào từ bàn phím số nguyên và hiển thị ra các số từ tới n 1 n. Bạn hãy viết chương trình nhập từ bàn phím số nguyên và hiển thị ra màn hình số các ước sốn của .n. Bạn hãy viết chương trình hiển thị ra màn hình các số từ tới sử dụng vòng lặp 1 5 do-while.

13.KIỂU CẤU TRÚC TRONG C++

Khi đó, tất cả các biến thuộc kiểu int_new trong chương trình cũng sẽ có kiểu dữ liệu là .int. Trong đó struct là câu lệnh, struct_name là tên cấu trúc đã được khai báo, và instance_name là tên của thực thể mà bạn muốn tạo ra từ cấu trúc đó. Trong đó struct_name là tên cấu trúc đã được khai báo, và instance_name là tên của thực thể mà bạn muốn tạo ra từ cấu trúc đó.

Trong đó instance là tên thực thể, và member là tên thành viên cần truy cập. Bạn hãy viết chương trình tạo ra struct Student với hai thuộc tính là name và age.

14.Function (Hàm)

Một hàm được định nghĩa thường nhằm để giải quyết một công việc nào đó (có thể thực hiện nhiều lần lặp đi lặp lại). Vì thế, tên hàm nên diễn đạt được tên công việc mà các bạn muốn máy tính thực hiện. Thông thường, chúng ta sử dụng động từ để biểu diễn hành động, công việc cần thực hiện.

 Hàm có thể có giá trị trả về hoặc không có giá trị trả về.  Hàm bắt buộc phải có tên, quy tắc đặt tên giống với quy tắc đặt tên biến.  Hàm có thể có 1 tham số, nhiều tham số hoặc không có tham số nào.

 Khối lệnh phía sau hàm chứa những dòng lệnh mà nó sẽ được thực hiện trong mỗi lần gọi hàm.