Hằng số (const)

####Chào các bạn! Chúng ta lại gặp nhau trong khóa học lập trình C++ hướng thực hành!

Trong bài học trước, chúng ta đã biết cách sử dụng Starndard Input trong C++ để nhập giá trị từ bàn phím và đưa vào vùng nhớ mà tên biến đang quản lý. Mỗi lần sử dụng đối tượng cin để nhập dữ liệu vào biến, giá trị trong vùng nhớ của biến đó sẽ bị thay đổi 1 lần. Đối với một số biến có cách khai báo thông thường, compiler cho phép ta thực hiện thay đổi giá trị của biến không giới hạn số lần.

Ví dụ:

Trong đoạn chương trình trên, biến myVar được khởi tạo giá trị ban đầu là 1. Và mình đã sử dụng 2 lần đối tượng cin để nhập giá trị mới cho biến myVar

Hình 1.6.1

Trong một số bài toán, giá trị của biến cần được thay đổi nhiều lần. Bên cạnh đó, có một số giá trị chúng ta muốn khởi tạo một lần và giữ nguyên giá trị đó trong suốt thời gian chương trình hoạt động. Ví dụ:

PI = 3.14;
gravity_on_earth = 9.8;

Những giá trị này được gọi là hằng số.

Việc định nghĩa một biến trong C++ như một hằng số sẽ giúp bạn đảm bảo giá trị của biến đó không bị thay đổi ngoài ý muốn.

###Khai báo hằng số

Để khiến một biến trong C++ trở thành một hằng số, bạn chỉ cần đặt từ khóa const trước hoặc sau kiểu dữ liệu của biến. Ví dụ:

const float gravity = 9.8;

int const my_constant = 123;

Lưu ý: Bạn phải khởi tạo giá trị cho biến hằng số mỗi khi định nghĩa chúng.

Định nghĩa một hằng số không có giá trị khởi tạo sẽ phát sinh lỗi khi biên dịch chương trình.

Các bạn có thể dùng giá trị của một biến không phải là hằng số để khởi tạo giá trị cho một biến hằng số.

int non_const_variable = 10;
const int const_variable = non_const_variable;

Một khi từ khóa const đã được sử dụng cho một biến, mọi hành vi khiến giá trị biến đó bị thay đổi đều bị compiler báo lỗi. Ngoài ra, bạn có thể sử dụng biến hằng số để tính toán, in giá trị của biến hằng số ra màn hình, … sử dụng như một biến thông thường.

###Một số cách để khởi tạo giá trị cho biến

Như mình đã nói ở trên:

Một biến hằng số phải được khởi tạo giá trị sau khi định nghĩa.

Việc khởi tạo giá trị có thể được viết bằng nhiều cách khác nhau. Ví dụ mình có biến year_of_birth có kiểu int, mình có thể khởi tạo biến này như sau:

int year_of_birth = 1992;

int year_of_birth(1992);

int year_of_birth { 1992 };

Nhưng theo ý kiến cá nhân của mình, sử dụng toán tử bằng “=” để khởi tạo giá trị khiến chương trình dễ hiểu hơn.

##Tổng kết

Trong bài học này, các bạn đã được biết thêm khái niệm hằng số, cách khai báo, định nghĩa và sử dụng hằng số trong ngôn ngữ C++. Ngoài ra, các bạn còn biết thêm một số cách khởi tạo giá trị thông dụng cho biến.


Hẹn gặp lại các bạn trong bài học tiếp theo trong khóa học lập trình C++ hướng thực hành.

Mọi ý kiến đóng góp hoặc thắc mắc có thể đặt câu hỏi trực tiếp tại diễn đàn
www.daynhauhoc.com


Link Videos khóa học

https://www.udemy.com/c-co-ban-danh-cho-nguoi-moi-hoc-lap-trinh/learn/v4/overview

12 Likes

Anh @nguyenchiemminhvu ơi sao không có #define myAge 19 ạ !
em thấy dùng chỉ thị này cũng được mà ^ _ ^

dùng #define bản chất của nó chỉ là thay thế text trong chương trình thôi. Việc sử dụng define có ưu điểm là ko tốn thêm bộ nhớ, nhưng không biết hằng số đó thuộc kiểu dữ liệu gì, nên việc sử dụng const vẫn được ưu tiên hơn.

4 Likes

Vâng em cảm ơn anh tại em viết chương trình dùng #define nhiều nên em hỏi thế thôi ạ :slight_smile:

Hi …nguyenchiemminhvu.
#definde vẫn quy định kiểu được .

Quy định thế nào anh @Phong_Ky_Vo

1 Like


Mn cho mình hỏi sao kết quả trả ra S lại bằng 0 nhỉ

do 1/2 của bn là chia kiểu lấy phần nguyên, thêm (float) trước 1/2 là ok

(float) 0 vẫn là 0 bạn.

Ý là ((float) 1 / 2) ấy

Ừ nhỉ :sweat_smile: mình hay viết là 1.0f/2.

k tốn thêm bộ nhớ vậy nó lưu hằng sao vậy anh

Nó viết riêng một chỗ trong file exe.

1 Like

Bạn giải thích rõ cho mình có được không

Anh ơi, em có code như này thì constant_variable vẫn = 10 anh ạ, vậy thì const này sử dụng được khi nào?

#include <iostream>

#include <iomanip>

#include <cstdint>

using namespace std;

int main() {

    int non_constant_variable = 10;

    int constant_variable = non_constant_variable;

    cout << constant_variable << endl;

    cin >> non_constant_variable;

    cout << non_constant_variable << endl;

    cout << constant_variable << endl;

    system("Pause");

}

Ví dụ mình tự làm:


Kết quả:
image

Mong nhận được lời góp ý và nhận xét từ mọi người. Mình xin cảm ơn!

Ok mình thấy bài này bạn làm ổn rồi ấy. Chúc bạn năm mới sức khỏe và thành công mới

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?