Các Kiểu Dữ Liệu Cơ Bản Trong Ngôn Ngữ C/C++

Sign in Sign in Welcome!Log into your account your username your password Forgot your password? Password recovery Recover your password your email Search Sunday, December 1, 2024
  • Sign in / Join
Sign in Welcome! Log into your account your username your password Forgot your password? Get help Password recovery Recover your password your email A password will be e-mailed to you. sinhvientot.net sinhvientot.net sinhvientot.net sinhvientot.net Home Lập trình C/C++ Các kiểu dữ liệu cơ bản trong ngôn ngữ C/C++ Facebook Twitter Pinterest WhatsApp

Các Ngôn Ngữ Lập Trình đều có một hệ thống các kiểu dữ liệu cơ sở cùng với các phép toán để người lập trình có thể thực hiện các tính toán và dựa vào kiểu cơ sở để xây dựng những kiểu dữ liệu phức tạp hơn trong quá trình viết chương trình.

Xem thêm Phương pháp học tập hiệu quả học phần ngôn ngữ lập…

Các kiểu dữ liệu bao gồm kiểu số nguyên (có dấu và không dấu), kiểu số thực, kiểu luận lý và kiểu ký tự, Kiểu void.

Độ lớn của từng kiểu dữ liệu phụ thuộc vào nền tảng lập trình, Để nắm rõ vấn đề này chúng ta cùng xem xét:

  • Khi chương trình chạy, mỗi biến hay hằng của chương trình sẽ được kết buộc với một ô nhớ bên trong bộ nhớ của máy tính.
  • Tùy theo kiểu dữ liệu, kích thước (hay độ dài) của ô nhớ này (cũng được gọi là kích thước của biến hay hằng tương ứng) sẽ chiếm một số byte nhất định trong bộ nhớ.
  • Toán tử sizeof dùng để xác định kích thước của kiểu dữ liệu, biến hay hằng trong C/C++

Để biết chính xác độ lớn của kiểu dữ liệu trên nền hiện tại có thể sử dụng từ khóa sizeof.

Cú phápsizeof(kiểu dữ liệu) 

Ví dụ (chương trình C)

#include <stdio.h> void main() { short Delta=9; printf("Kich thuoc bien Delta = %d\n", sizeof(Delta)); printf("Kich thuoc kieu int = %d\n", sizeof(int)); printf("Kich thuoc kieu long = %d\n", sizeof(long)); printf("Kich thuoc kieu float = %d\n", sizeof(float)); printf("Kich thuoc kieu double = %d\n", sizeof(double)); printf("Kich thuoc kieu char = %d\n", sizeof(char)); }

Ví dụ (chương trình C++)

#include <iostream> using namespace std; void main() { short Delta=9; cout << "Kich thuoc bien Delta = " << sizeof(Delta) << endl; cout << "Kich thuoc kieu int = " << sizeof(int) << endl; cout << "Kich thuoc kieu long = " << sizeof(long) << endl; cout << "Kich thuoc kieu float = " << sizeof(float) << endl; cout << "Kich thuoc kieu double = " << sizeof(double) << endl; cout << "Kich thuoc kieu char = " << sizeof(char) << endl; }

Kiểu số nguyên có dấu

  • Miền giá trị (số n-bit): -2n-1 .. +2n-1 – 1

image002

Kiểu số nguyên không dấu

  • Miền giá trị (số n-bit): 0 .. 2n – 1
image003
  • Hằng số nguyên có thể biểu diễn ở 3 dạng
    • Bát phân: viết bắt đầu bằng số 0
    • Thập phân: viết bắt đầu bằng số từ 1 đến 9
    • Thập lục phân: viết đầu bằng 0x
  • Các phép toán số học
    • Phép cộng: +, phép trừ: –, phép nhân: *
    • Phép chia lấy phần nguyên: /
    • Phép chia lấy phần dư: %
  • Các phép toán trên bit cho số nguyên không dấu (được áp dụng khi muốn lập trình thao tác trên các bit của dữ liệu hay muốn tăng tốc độ xử lý của chương trình trong một vài tình huống nhất định)
    • Phép and bit: &
    • Phép or bit: |
    • Phép xor bit: ^
    • Phép not bit: ~

Ví dụ toán tử trên bit

#include <stdio.h> void main() { unsigned char a = 45;       // 00101101 unsigned char b = 58;       // 00111010 int c1, c2, c3, c4, c5, c6; c1 = a & b;              // 00101000 c2 = a | b;                // 00111111 c3 = a ^ b;               // 00010111 c4 = ~a;                   // 11010010 c5 = a >> 4;                        // 11010000 c6 = a << 4;                        // 00000010 }

Kiểu số thực

Cấu trúc lưu trữ bên trong của số thực được thiết kế theo chuẩn số chấm động (floating-point) của IEEE.

image004
  • Các phép toán số học
Phép cộng: + Phép trừ: – Phép nhân: * Phép chia: /
  • Các hàm toán học như căn số, lũy thừa, logarit, …

Kiểu ký tự

  • Kiểu ký tự 8-bit

–Kiểu char hoặc unsigned char.

–Lưu mã ASCII của ký tự, giá trị từ 0 đến 255.

–Một số ký tự nên nhớ

image005
  • Đổi ký tự từ ký tự thường sang ký tự hoa:
  • Nếu ‘a’ ≤ ch ≤ ’z’ thì ch (mới) = ch – (‘a’ – ‘A’)
  • Ngược lại ch (mới) = ch
  • Trong mọi trường hợp ta có công thức:
ch – (‘a’ – ‘A’) * (ch >= ‘a’ && ch <= ‘z’)
  • Tương tự ta cũng có công thức chuyển ký tự thành ký tự thường:
ch – (‘a’ – ‘A’) * (ch >= ‘A’ && ch <= ‘Z’)
  • Ví dụ:
#include <stdio.h> void main() { char ch; ch=65; printf("ch = %c\n", ch); ch = 'A'; printf("ch = %c\n", ch); printf("ch = "); scanf("%c", &ch); printf("ASCII code = %d\n", ch); ch -= ('a' – 'A')*(ch>='a' && ch<=z); printf("Upper case: %c\n", ch); }
  • Kiểu ký tự 16-bit

–Kiểu wchar_t (#include <wchar>)

–Lưu trữ dựa trên bảng mã quốc tế UTF-16 (một dạng mã Unicode) Mã UTF-16 của ký tự thông thường (‘0’ đến ‘9’, ‘A’ đến ‘Z’, ‘a’ đến ‘z’, …) trùng mã ASCII.

–Hằng ký tự kiểu wchar_t được đặt trước bằng chữ L

Lưu ý, ‘B’ và L’B’ như nhau (cùng giá trị 66) nhưng kích thước trong bộ nhớ khác nhau (sizeof(‘B’) = 1, sizeof(L’B’) = 2)

Ví dụ: Viết chương trình nhập vào 1 kí tự bất kỳ. Xuất ra mã ASCII của ký tự đó. Nếu ký tự là chữ hoa thì biến thành chữ thường và ngược lại.

#include<stdio.h> #include<conio.h> void main() { printf("Nhap ky tu: "); char c; scanf("%c", &c); printf("Ma ASCII cua %c la %d\n", c, c); char hoa = (c >= 97 && c <= 122)?(c-32):(c+32; printf("Hoa/thuong: %c", hoa); getch(); }

Kiểu luận lý

  • Trong C chuẩn không có kiểu luận lý. Giá trị sai (false) là 0, giá trị đúng (true) là khác 0 (thường là 1).
  • Khai báo kiểu bool đối với C++ chuẩn hoặc kiểu số nguyên bất kỳ (char, int, …)
    • Giá trị khác 0 nghĩa là đúng (true).
    • Giá trị bằng 0 nghĩa là sai (false). Lưu ý: Kết quả lượng giá một biểu thức luận lý bất kỳ thực hiện bởi C++ luôn cho kết quả là 0 (false) hay 1 (true).
  • Các phép toán
    • Kết hợp: && (and), || (or), ! (not)
    • So sánh: >, >=, <, <=, ==, !=

Kiểu void

  • Không lưu bất cứ dữ liệu gì
  • Báo cho trình biên dịch không có giá trị trả về

Xem thêm Biến-Hằng-Câu lệnh và biểu thức trong C/C++

RELATED ARTICLESMORE FROM AUTHOR

C/C++

Sự khác nhau giữa Inline function và Macro trong C

C/C++

Trong ngôn ngữ C/C++ có bao nhiêu vùng nhớ (Memory layout)

C/C++

Cấu trúc dữ liệu danh sách nhân viên

C/C++

Tổng quan File trong C

C/C++

Cấu trúc kiểu dữ liệu sinh viên

C/C++

Cấu trúc mô tả một điểm trên tọa độ xOy

LEAVE A REPLY Cancel reply

Log in to leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Danh sách các bài học

Các kiểu dữ liệu cơ bản trong ngôn ngữ C/C++

Mr Good - April 16, 2016 0

Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012

April 16, 2016

Biến-Hằng-Câu lệnh và biểu thức trong C/C++

April 16, 2016

Cấu trúc IF-ELSE

April 16, 2016

Cấu trúc switch – case

April 16, 2016

Vòng lặp For

April 16, 2016

Cấu trúc While, Do-while

April 16, 2016

Cách sử dụng hàm trong lập trình

April 16, 2016

Mảng một chiều

April 16, 2016 Load more

Bài viết mới nhất

Download

Download Cisco Packet Tracer

Windows 10

Hướng dẫn cài đặt webserver trên localhost để chạy wordpress

HPE

Hướng dẫn cấu hình IP ILO máy chủ HP DL380 Gen10

CentOS

CentOS 8 – Giới thiệu về hệ điều hành Linux (P1)

Load more © Copyright 2016, All Rights Reserved. Donations are always appreciated! MEW: 0x296f1a39d5Ca3cb83C76724eA38af3B90B90109D MORE STORIES

Ví dụ về mảng trong C# (phần 1)

Nguyễn Văn Hiếu - August 6, 2016 0

Soạn thảo công thức toán học và Gõ tắt – sửa lỗi tự động...

Mr Good - June 14, 2016 0

Từ khóa » Các Kiểu Dữ Liệu Trong Ngôn Ngữ Lập Trình C