[Lập trình C/C++] - Biến, hằng

I) Giới thiệu

Chương trình máy tính phải có cách lưu trữ dữ liệu cho chính nó sử dụng. Biến và hằng cung cấp nhiều cách khác nhau cho việc thao tác, lưu trữ và xử lý dữ liệu. Hôm nay, các bạn sẽ được học:
  • Tạo, định nghĩa biến và hằng
  • Làm thế nào để gán và thao tác giá trị cho biến
  • Làm thế nào để in giá trị của biến trên màn hinh

II) Nội dung

1) Biến (variable)

  • Trong C/C++, biến là một nơi để lưu trữ thông tin. Biến là một nơi trong bộ nhớ của bạn mà bạn có thể lưu trữ một giá trị (một giá trị có thể là số nguyên, số thực, ký tự, chuỗi,...) và từ đó, bạn có thể lấy giá trị đó để sử dụng.
  • Khi bạn định nghĩa 1 biến trong C/C++, bạn phải báo cho trình biên dịch biết kiểu dữ liệu của biến: integer (số nguyên), char (ký tự), float (số thực), string (chuỗi),... Thông tin này báo cho trình biên dịch biết cần bỏ ra bao nhiêu chỗ trống (1 chỗ trống là 1 byte trong bộ nhớ) và loại giá trị mà bạn muốn lưu trữ trong biến đó.
  • Dưới đây là một số kiểu dữ liệu trong C/C++:

    KiểuSizeKhoảng giá trị
    unsigned short int 2 bytes đến 65,535 
    short int2 bytes -32,768 đến 32,767 
    unsigned long int 4 bytes 0 đến 4,294,967,295 
    long int4 bytes-2,147,483,648 đến 2,147,483,647 
    int (16 bit)2 bytes-32,768 đến 32,767 
    int (32 bit) 4 bytes-2,147,483,648 đến 2,147,483,647 
    unsigned int (16 bit)2 bytes0 đến 65,535 
    unsigned int (32 bit)4 bytes0 đến 4,294,967,295 
    unsigned char1 byte0 đến 255 hoặc
    256 ký tự trong bảng mã ASCII
    char1 byte-128 đến 127
    float4 bytes1.2e-38 đến 3.4e38 
    double8 bytes2.2e-308 đến 1.8e308

  • Khai báo 1 biến trong C/C++:
    • Cú pháp:
      • <kiểu dữ liệu> <tên biến>;
      • <kiểu dữ liệu> <tên biến> = <giá trị>;
      • <kiểu dữ liệu> < tên biến 1>, <tên biến 2>, ...; (tạo nhiều biến)
    • Ví dụ:
      • int weight;
      • int myAge = 20;
      • string name, address;
      • string name = "Jonh Cena", address = "WWE";
  • Quy ước đặt tên biến trong C/C++: tên biến có thể bao gồm ký tự hoặc số, tên biến không được chứa các ký tự đặc biệt, tên biến phải bắt đầu bằng chữ cái hoặc dấu gạch dưới '_' và không được bắt đầu bằng chữ số và tên biến phân biệt hoa thường.
  • Khi khao báo một biến, chúng ta cần quan tâm tới biến đó sẽ lưu cái gì và phạm vi giá trị của nó để chọn kiểu dữ liệu cho phù hợp. Ví dụ bạn muốn lưu ngày trong một tháng, bạn để ý rằng số ngày trong một tháng là một số nguyên, bạn nghĩ ngay đến kiểu int, thế nhưng kiểu int chiếm mất 2 byte trong bộ nhớ và phạm vi giá trị lưu trữ của nó rất lớn (các bạn có thể xem lại bảng trên) trong khi ta chỉ cần lưu một giá trị nguyên nhỏ hơn hoặc bằng 31 - đó là số ngày tối đa trong 1 tháng, vì vậy lựa chọn kiểu unsinged char là hợp lý. Bởi vì kiểu unsigned char chỉ chiếm 1 byte trong bộ nhớ và phạm vi dữ liệu của nó cũng đủ để lưu con số bé nhỏ của chúng ta. Một lời khuyên dành cho các bạn là một tên biến tốt là tên biến phải liên quan đến giá trị của nó đang nắm giữ. Ví dụ nến bạn muốn đặt một biến là số tuổi của bạn, tên biến có thể là myAge, hoặc bạn muốn lưu tên của ai đó, tên biến có thể là name.
  • Toán tử typedef (định nghĩa kiểu dữ liệu mới trong C++): ngoài những kiểu dữ liệu có sẵn (int, float, double, long, char,...), C/C++ còn giúp người lập trình tạo ra kiểu dữ liệu mới (thực chất là đặt tên mới cho kiểu dữ liệu có sẵn), giống như tên ở trường khác với tên ở nhà của bạn, nhưng có cùng mục đích là gọi bạn.
    • Cú pháp: typedef <kiểu dữ liệu cũ> <kiểu dữ liệu mới>;
    • Ví dụ: typedef unsinged int UINT. Bây giờ bạn có thể khai báo một biến mới với kiểu dữ liệu mới là UINT.
  • In dữ liệu của biến ra màn hình: chúng ta có thể sử dụng hàm printf() hoặc cout:
    • Sử dụng hàm printf(): cái này làm ví dụ là dễ hiểu nhất
      • Ví dụ: int a = 5;
                   printf("Gia tri cua a la %d", a);
        Kết quả sẽ in ra màn hình: Gia tri cua a la 5;
      • Giải thích câu lệnh trên:
        • Dòng đầu tiên  khai báo một biến tên là a và gán giá trị 5 cho nó
        • Dòng thứ 2 sử dụng hàm printf. Với %d là đặc tả báo cho chương trình biết chúng ta sẽ in một số nguyên ở đó. Và a là biến ta truyền vào cho cái %d đó. Nói cho dễ hiểu là giá trị của a sẽ thay vị trí của %d.
      • Các bạn có thể in nhiều biến một lúc rất dễ dàng:
        • Ví dụ: int a = 5;
                        int b = 6;
                        char c = 'b';
                        printf("a = %d, b = %d, c = %f", a, b, c);
          Kết quả in ra màn hình: a = 5, b = 6, c = b;
      • Các bạn có thể tham khảo thêm tại đây.
    • Sử dụng hàm cout trong thư viện std: cách này dễ dàng hơn rất nhiều
      • Ví dụ: int a = 5;
                   int b = 6;
                   cout << "Gia tri cua a la << a <<", b là " << b;
      • Cách này ưu điểm là chúng ta không cần nhớ đến đặc tả phức tạp như hàm printf().

2) Hằng (constant)

  • Tương tự như biến, hằng cũng dùng để lưu trữ dữ liệu. Tuy nhiên, giá trị của hằng không thay đổi trong chương trình. Vì vậy, bạn phải khởi tạo giá trị của hằng khi khai báo 1 hằng.
  • Cú pháp khai báo: const <kiểu dữ liệu> <tên hằng> = <giá trị>;
    • Cú pháp cũng giống như khai báo biến, chỉ khác nhau là thêm chữ const ở đầu - điều này báo cho trình biên dịch không cho phép người lập trình thay đổi giá trị.
    • Ví dụ: const int WIDTH = 10;
                   const int MAX = 100;
  • Tuy không phải bắt buộc nhưng tên hằng người ta thường ghi in hoa toàn bộ các chữ cái.
  • Từ khóa #define trong C/C++: tương tự như hằng, nó cũng được dùng để khai báo một giá trị không đổi
    • Ví dụ: #define MAX 100;
  • Sự khác nhau giữa const và #define:
    • const: về bản chất, nó cũng chiếm ô nhớ như biến, nó có kiểu dữ liệu và giá trị, nhưng giá trị của nó không đổi (bởi vì trình biên dịch không cho phép người lập trình thay đổi giá trị 😁).
    • #define: tiền xử lý trước khi biên dịch - có nghĩa là code của chúng ta sẽ được sửa lại trước khi biên dịch. Ở ví dụ #define MAX 100. Có nghĩa là trước khi biên dịch, trong code của chúng ta, ở đâu có chữ MAX, nó sẽ thay thế bằng 100, sau đó nó mới bắt đầu biên dịch chương trình. Nó chỉ là xử lý code của chúng ta trước, sau đó mới biên dịch, nó không chiếm bộ nhớ, nó không mang giá trị.

3) Tổng kết

  • Qua bài viết này, các bạn cần ghi nhớ những điều quan trọng sau:
    • Các kiểu dữ liệu cơ bản trong C/C++
    • Cách khai báo một biến và hằng trong C/C++
    • Cách in giá trị của biến và hằng ra màn hình
Ở bài tiếp theo, chúng ta sẽ tìm hiểu Biểu thức và Câu lệnh trong C/C++.
Chúc các bạn học tập tốt 💗
[Lập trình C/C++] - Biến, hằng [Lập trình C/C++] - Biến, hằng Reviewed by Unknown on 16:09 Rating: 5

Không có nhận xét nào:

Được tạo bởi Blogger.