C++: Bài 7. Hằng/Literal


Đăng ký nhận thông báo về những video mới nhất

Hằng đề cập đến các giá trị cố định mà chương trình có thể không thay đổi và chúng được gọi là các literal.

Hằng có thể thuộc bất kỳ kiểu dữ liệu cơ bản nào và có thể được chia thành Số nguyên, Số dấu phẩy động, Ký tự, Chuỗi và Giá trị Boolean.

Các hằng được xử lý giống như các biến thông thường ngoại trừ việc không thể sửa đổi giá trị của chúng sau khi định nghĩa.

Hằng nguyên

Một ký tự số nguyên có thể là một hằng số thập phân, bát phân hoặc thập lục phân. Tiền tố chỉ định cơ số hoặc radix: 0x hoặc 0X cho hệ thập lục phân, 0 cho hệ bát phân và không có gì cho thập phân.

Một chữ số nguyên cũng có thể có một hậu tố là sự kết hợp của U và L, tương ứng là không dấu (unsigned) và dài (long). Hậu tố có thể là chữ hoa hoặc chữ thường và có thể theo bất kỳ thứ tự nào.

Dưới đây là một số ví dụ về các hằng nguyên:

212     // hợp lệ
215u    // hợp lệ
0xFeeL  // hợp lệ
078     // không hợp lệ: 8 không phải là số hệ bát phân
032UU   // không hợp lệ: không được lặp phần hậu tố

Sau đây là ví dụ về một số loại hằng nguyên:

85    // hệ 10
0213  // hệ 8
0x4b  // hệ 16
30    // int
30u   // unsigned int
30l   // long
30ul  // unsigned long

Hằng thực

Một hằng thực bao gồm một phần nguyên, một dấu thập phân, một phần thập phân và một phần mũ. Bạn có thể biểu diễn các hằng thực ở dạng thập phân hoặc dạng hàm mũ.

Nếu biểu diễn bằng cách sử dụng dạng thập phân, bạn phải đưa vào dấu thập phân, số mũ hoặc cả hai và nếu biểu diễn bằng cách sử dụng dạng mũ, bạn phải bao gồm phần nguyên, phần thập phân hoặc cả hai. Số mũ có dấu được thể hiện là bởi e hoặc E.

Dưới đây là một số ví dụ về các hằng thực:

3.14159     // hợp lệ
314159E-5L  // hợp lệ
510E        // không hợp lệ: phần mũ chưa đủ
210f        // không hợp lệ: không có phần thập phân hoặc phần mũ
.e55        // không hợp lệ: không có phần nguyên hoặc phần thập phân

Hằng boolean

Có hai giá trị boolean sau và chúng cũng là các từ khóa của chuẩn C++:

  • Giá trị true (đúng)
  • Giá trị false (sai).

Ta không coi true là 1 và false là 0.

Hằng ký tự

Hằng ký tự được đặt trong cặp nháy đơn. Nếu hằng bắt đầu bằng L (chỉ viết hoa), thì đó là một hằng rộng (ví dụ: L'x') và phải được lưu trữ trong biến có kiểu wchar_t. Nếu không, nó là một ký tự hẹp (ví dụ: 'x') và có thể được lưu trữ trong một biến có kiểu char.

Một hằng ký tự có thể là một ký tự thuần túy (ví dụ: 'x'), một ký tự thoát (ví dụ: '\t') hoặc một ký tự phổ quát (ví dụ: '\u02C0').

Có một số ký tự trong C++ khi chúng đứng trước dấu gạch chéo ngược (\), chúng sẽ có ý nghĩa đặc biệt và chúng được sử dụng để biểu thị như dòng mới (\n) hoặc tab (\t). Dưới đây là danh sách một số mã trình tự thoát như vậy:

Chuỗi thoát Ý nghĩa
\\ ký tự \
\' ký tự nháy đơn '
\" ký tự nháy kép "
\? ký tự hỏi chấm ?
\a alert hoặc bell
\b xóa lùi
\f form feed
\n dòng mới
\r carriage return
\t tab ngang
\v tab dọc
\ooo số hệ 8 từ một đến ba chữ số
\xhh . . . số hệ 16 từ một chữ số

Sau đây là ví dụ một số ký tự thoát:

#include <iostream>
using namespace std;

main() {
  cout << "Hello\tWorld\n\n";
  return 0;
}

Kết quả:

Hello   World

Hằng chuỗi

Hằng chuỗi được đặt trong cặp nháy kép. Một chuỗi chứa các ký tự tương tự như các ký tự: ký tự thuần túy, chuỗi thoát và ký tự phổ quát.

Bạn có thể ngắt một dòng dài thành nhiều dòng bằng cách sử dụng các hằng chuỗi và phân tách chúng bằng cách sử dụng khoảng trắng.

Dưới đây là một số ví dụ về hằng chuỗi, tất cả ba ví dụ đều là chuỗi giống hệt nhau.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

Tạo hằng

Có hai cách tạo hằng trong C++ là:

  • Sử dụng bộ tiền xử lý #define.
  • Sử dụng từ khóa const.

Bộ tiền xử lý #define

Cú pháp:

#define tên_hằng giá_trị

Ví dụ:

#include <iostream>
using namespace std;

#define LENGTH 10
#define WIDTH  5
#define NEWLINE '\n'

main() {
  int area;

  area = LENGTH * WIDTH;
  cout << area;
  cout << NEWLINE;
  return 0;
}

Kết quả:

50

Từ khóa const

Cú pháp:

const kiểu_dữ_liệu tên_hằng = giá_trị;

Ví dụ:

#include <iostream>
using namespace std;

main() {
  const int  LENGTH = 10;
  const int  WIDTH  = 5;
  const char NEWLINE = '\n';
  int area;

  area = LENGTH * WIDTH;
  cout << area;
  cout << NEWLINE;
  return 0;
}

Kết quả:

50

Lưu ý: Nên đặt tên hằng chỉ gồm các ký tự in hoa (CAPITAL).


Nếu bạn có điều thắc mắc, bạn hãy comment cho V1Study để được giải đáp.
Bài viết này được chia sẻ bởi LongDT. Nếu bạn muốn chia sẻ bài viết, bạn hãy Đăng ký làm thành viên!
« Prev
Next »
Copied !!!