Dereference Trong C++

Nhận Địa Chỉ Bộ Nhớ Và Giá Trị

Trong ví dụ ở trang trước, chúng ta đã sử dụng biến con trỏ để lấy địa chỉ bộ nhớ của một biến (được sử dụng cùng với toán tử & tham chiếu). Tuy nhiên, bạn cũng có thể sử dụng con trỏ để lấy giá trị của biến, bằng cách sử dụng toán tử * (toán tử dereference):

Example

string food = "Pizza";  // Variable declaration
string* ptr = &food;    // Pointer declaration

// Reference: Output the memory address of food with the pointer (0x6dfed4)
cout << ptr << "\n";

// Dereference: Output the value of food with the pointer (Pizza)
cout << *ptr << "\n";

Lưu ý rằng dấu * có thể gây nhầm lẫn ở đây, vì nó thực hiện hai điều khác nhau trong mã của chúng tôi:

  • Khi được sử dụng trong khai báo (chuỗi* ptr), nó tạo ra một biến con trỏ.
  • Khi không được sử dụng trong tuyên bố, nó hoạt động như một toán tử phân tích.

The post Dereference Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/dereference-trong-c/

Pointers Trong C++

Tạo Con Trỏ

Bạn đã học từ chương trước, rằng chúng ta có thể lấy địa chỉ bộ nhớ của một biến bằng cách sử dụng toán tử &:

Example

string food = "Pizza"; // A food variable of type string

cout << food;  // Outputs the value of food (Pizza)
cout << &food; // Outputs the memory address of food (0x6dfed4)

Tuy nhiên, con trỏ là một biến lưu trữ địa chỉ bộ nhớ dưới dạng giá trị của nó.

Một biến con trỏ trỏ đến một kiểu dữ liệu (như int hoặc string) cùng kiểu và được tạo bằng toán tử *. Địa chỉ của biến mà bạn đang làm việc được gán cho con trỏ:

Example

string food = "Pizza";  // A food variable of type string
string* ptr = &food;    // A pointer variable, with the name ptr, that stores the address of food

// Output the value of food (Pizza)
cout << food << "\n";

// Output the memory address of food (0x6dfed4)
cout << &food << "\n";

// Output the memory address of food with the pointer (0x6dfed4)
cout << ptr << "\n";

Giải thích ví dụ

Tạo một biến con trỏ với tên ptr, biến đó trỏ đến một biến chuỗi, bằng cách sử dụng dấu hoa thị * (string * ptr). Lưu ý rằng loại con trỏ phải phù hợp với loại biến mà bạn đang làm việc.

Sử dụng toán tử & để lưu trữ địa chỉ bộ nhớ của biến được gọi là food và gán nó cho con trỏ.

Bây giờ, ptr giữ giá trị của địa chỉ bộ nhớ của food.

Mẹo: Có ba cách để khai báo biến con trỏ, nhưng cách đầu tiên được ưu tiên:

string* mystring; // Preferred
string *mystring;
string * mystring;

 

The post Pointers Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/pointers-trong-c/

Memory Address Trong C++

Memory Address

Trong ví dụ ở trang trước, toán tử & được sử dụng để tạo một biến tham chiếu. Nhưng nó cũng có thể được sử dụng để lấy địa chỉ bộ nhớ của một biến; là vị trí lưu trữ biến trên máy tính.

Khi một biến được tạo trong C ++, một địa chỉ bộ nhớ sẽ được gán cho biến đó. Và khi chúng ta gán một giá trị cho biến, nó sẽ được lưu trong địa chỉ vùng nhớ này.

Để truy cập nó, hãy sử dụng toán tử & và kết quả sẽ đại diện cho nơi lưu trữ biến:

Example

string food = "Pizza";

cout << &food; // Outputs 0x6dfed4

Lưu ý: Địa chỉ bộ nhớ ở dạng thập lục phân (0x ..). Lưu ý rằng bạn có thể không nhận được kết quả tương tự trong chương trình của mình.

Và tại sao nó lại hữu ích khi biết địa chỉ bộ nhớ?

Tài liệu tham khảo và Con trỏ (mà bạn sẽ tìm hiểu trong chương tiếp theo) rất quan trọng trong C ++, vì chúng cung cấp cho bạn khả năng thao tác dữ liệu trong bộ nhớ của máy tính – có thể giảm mã và cải thiện hiệu suất.

Hai tính năng này là một trong những điều làm cho C ++ nổi bật hơn so với các ngôn ngữ lập trình khác, như Python và Java.

The post Memory Address Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/memory-address-trong-c/

References Trong C++

Tạo Tài Liệu Tham Khảo

Một biến tham chiếu là một “tham chiếu” đến một biến hiện có và nó được tạo bằng toán tử &:

string food = "Pizza";  // food variable
string &meal = food;    // reference to food

Bây giờ, chúng ta có thể sử dụng tên biến food hoặc tên meal bữa ăn để tham chiếu đến biếnfood:

Example

string food = "Pizza";
string &meal = food;

cout << food << "\n";  // Outputs Pizza
cout << meal << "\n";  // Outputs Pizza

 

 

The post References Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/references-trong-c/

Structures (struct) Trong C++

C++ Structures

Cấu trúc (còn được gọi là cấu trúc) là một cách để nhóm một số biến có liên quan vào một nơi. Mỗi biến trong cấu trúc được biết đến như một thành viên của cấu trúc.

Không giống như một mảng, một cấu trúc có thể chứa nhiều kiểu dữ liệu khác nhau (int, string, bool, v.v.).

Tạo Cấu Trúc

Để tạo một cấu trúc, hãy sử dụng từ khóa struct và khai báo từng thành viên của nó bên trong dấu ngoặc nhọn.

Sau khi khai báo, chỉ định tên của biến cấu trúc (myStructure trong ví dụ bên dưới):

struct {             // Structure declaration
  int myNum;         // Member (int variable)
  string myString;   // Member (string variable)
} myStructure;       // Structure variable

Thành Viên Cấu Trúc Truy Cập

Để truy cập các thành viên của một cấu trúc, hãy sử dụng cú pháp dấu chấm (.):

Example

Gán dữ liệu cho các thành viên của một cấu trúc và in nó:

// Create a structure variable called myStructure
struct {
  int myNum;
  string myString;
} myStructure;

// Assign values to members of myStructure
myStructure.myNum = 1;
myStructure.myString = "Hello World!";

// Print members of myStructure
cout << myStructure.myNum << "\n";
cout << myStructure.myString << "\n";

Một Cấu Trúc Trong Nhiều Biến

Bạn có thể sử dụng dấu phẩy (,) để sử dụng một cấu trúc trong nhiều biến:

struct {
  int myNum;
  string myString;
} myStruct1, myStruct2, myStruct3; // Multiple structure variables separated with commas

Ví dụ này cho thấy cách sử dụng một cấu trúc trong hai biến khác nhau:

Example

Use one structure to represent two cars:

struct {
  string brand;
  string model;
  int year;
} myCar1, myCar2; // We can add variables by separating them with a comma here

// Put data into the first structure
myCar1.brand = "BMW";
myCar1.model = "X5";
myCar1.year = 1999;

// Put data into the second structure
myCar2.brand = "Ford";
myCar2.model = "Mustang";
myCar2.year = 1969;

// Print the structure members
cout << myCar1.brand << " " << myCar1.model << " " << myCar1.year << "\n";
cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "\n";

 

The post Structures (struct) Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/structures-struct-trong-c/

Omit Array Size Trong C++

Bỏ Qua Kích Thước Mảng

Bạn không phải chỉ định kích thước của mảng. Nhưng nếu bạn không làm như vậy, nó sẽ chỉ lớn bằng các phần tử được chèn vào đó:

string cars[] = {"Volvo", "BMW", "Ford"}; // size of array is always 3

Điều này là hoàn toàn tốt. Tuy nhiên, vấn đề nảy sinh nếu bạn muốn có thêm không gian cho các yếu tố trong tương lai. Sau đó, bạn phải ghi đè các giá trị hiện có:

string cars[] = {"Volvo", "BMW", "Ford"};
string cars[] = {"Volvo", "BMW", "Ford", "Mazda", "Tesla"};

Tuy nhiên, nếu bạn chỉ định kích thước, mảng sẽ dành thêm không gian:

string cars[5] = {"Volvo", "BMW", "Ford"}; // size of array is 5, even though it's only three elements inside it

Giờ đây, bạn có thể thêm phần tử thứ tư và thứ năm mà không cần ghi đè những phần tử khác:

Example

cars[3] = "Mazda";
cars[4] = "Tesla";

Bỏ Qua Các Phần Tử Trên Khai Báo

Cũng có thể khai báo một mảng mà không cần chỉ định các phần tử trên khai báo và thêm chúng sau:

Example

string cars[5];
cars[0] = "Volvo";
cars[1] = "BMW";
...

 

The post Omit Array Size Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/omit-array-size-trong-c-2/

Arrays and Loops Trong C++

Vòng Qua Một Mảng

Bạn có thể lặp qua các phần tử của mảng bằng vòng lặp for.

Ví dụ sau xuất ra tất cả các phần tử trong mảng ô tô:

Example

string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < 4; i++) {
  cout << cars[i] << "\n";
}

Ví dụ sau xuất ra chỉ mục của mỗi phần tử cùng với giá trị của nó:

Example

 

string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < 4; i++) {
  cout << i << ": " << cars[i] << "\n";
}

 

The post Arrays and Loops Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/arrays-and-loops-trong-c/

Break and Continue Trong C++

C++ Break

Bạn đã thấy câu lệnh break được sử dụng trong chương trước của hướng dẫn này. Nó được sử dụng để “nhảy ra” của một câu lệnh switch.

Câu lệnh break cũng có thể được sử dụng để nhảy ra khỏi vòng lặp.

Ví dụ này nhảy ra khỏi vòng lặp khi i bằng 4:

Example

for (int i = 0; i < 10; i++) {
  if (i == 4) {
    break;
  }
  cout << i << "\n";
}

C++ Continue

Câu lệnh continue ngắt một lần lặp (trong vòng lặp), nếu một điều kiện cụ thể xảy ra và tiếp tục với lần lặp tiếp theo trong vòng lặp.

Ví dụ này bỏ qua giá trị của 4:

Example

for (int i = 0; i < 10; i++) {
  if (i == 4) {
    continue;
  }
  cout << i << "\n";
}

Break and Continue in While Loop

Bạn cũng có thể sử dụng break và continue trong vòng lặp while:

Break Example

int i = 0;
while (i < 10) {
  cout << i << "\n";
  i++;
  if (i == 4) {
    break;
  }
}

Continue Example

int i = 0;
while (i < 10) {
  if (i == 4) {
    i++;
    continue;
  }
  cout << i << "\n";
  i++;
}

Bài Tập C ++

Kiểm tra bản thân với các bài tập

Bài Tập

Dừng vòng lặp nếu i là 5:

for (int i = 0; i < 10; i++) {
  if (i == 5) {   
    
;
  }
  cout << i << "\n";
}

 

The post Break and Continue Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/break-and-continue-trong-c/

For Loop Trong C++

C++ For Loop

Khi bạn biết chính xác số lần bạn muốn lặp qua một khối mã, hãy sử dụng vòng lặp for thay vì vòng lặp while:

Syntax

for (statement 1; statement 2; statement 3) {
  // code block to be executed
}

Câu lệnh 1 được thực hiện (một lần) trước khi khối mã thực thi.

Câu lệnh 2 xác định điều kiện để thực thi khối mã.

Câu lệnh 3 được thực hiện (mọi lúc) sau khi khối mã đã được thực thi.

Ví dụ dưới đây sẽ in các số từ 0 đến 4:

Example

for (int i = 0; i < 5; i++) {
  cout << i << "\n";
}

Giải thích ví dụ

Câu lệnh 1 đặt một biến trước khi vòng lặp bắt đầu (int i = 0).

Câu lệnh 2 xác định điều kiện để vòng lặp chạy (i phải nhỏ hơn 5). Nếu điều kiện đúng, vòng lặp sẽ bắt đầu lại, nếu sai, vòng lặp sẽ kết thúc.

Câu lệnh 3 tăng một giá trị (i ++) mỗi khi khối mã trong vòng lặp được thực thi.

Một Ví Dụ Khác

Ví dụ này sẽ chỉ in các giá trị chẵn từ 0 đến 10:

Example

for (int i = 0; i <= 10; i = i + 2) {
  cout << i << "\n";
}

 

The post For Loop Trong C++ first appeared on Techacademy.

source https://techacademy.edu.vn/for-loop-trong-c/

Models Trong Django

Mô hình Django là một bảng trong cơ sở dữ liệu của bạn.

Cơ sở dữ liệu SQLite

Khi chúng tôi tạo dự án Django, chúng tôi nhận được một cơ sở dữ liệu SQLite trống. Nó được tạo trong thư mục gốc myworld.

Chúng tôi sẽ sử dụng cơ sở dữ liệu này trong hướng dẫn này.

Tạo bảng (Model)

Để tạo một bảng mới, chúng ta phải tạo một Model mới.

Trong thư mục /Member/, hãy mở tệp models.py. Nó gần như trống theo mặc định, chỉ có câu lệnh nhập và nhận xét:

members/models.py:

from django.db import models

# Create your models here.

Để thêm bảng Thành viên vào cơ sở dữ liệu của chúng tôi, hãy bắt đầu bằng cách tạo một lớp Thành viên và mô tả các trường bảng trong đó:

members/models.py:

from django.db import models

class Members(models.Model):
  firstname = models.CharField(max_length=255)
  lastname = models.CharField(max_length=255)

Trường đầu tiên, “firstname” là trường Văn bản và sẽ chứa tên của các thành viên.

Trường thứ hai, “lastname ” cũng là trường Văn bản, với họ của các thành viên.

Cả “firstname” và “lastname” đều được thiết lập để có tối đa 255 ký tự.

Sau đó điều hướng đến thư mục / myworld / và chạy lệnh này:

py manage.py makemigrations members

Điều này sẽ dẫn đến kết quả đầu ra này:

Migrations for 'members':
  members\migrations\0001_initial.py
    - Create model Members

(myproject) C:\Users\Your Name\myproject\myworld>

Django tạo một tệp với bất kỳ thay đổi mới nào và lưu trữ tệp trong thư mục / migrations /.

Next time you run py manage.py migrate Django will create and execute an SQL statement, based on the content of the new file in the migrations folder.

Lần tới khi bạn chạy py management.py migrate Django sẽ tạo và thực thi một câu lệnh SQL, dựa trên nội dung của tệp mới trong thư mục di chuyển.

Chạy lệnh di chuyển:

py manage.py migrate

Điều này sẽ dẫn đến kết quả đầu ra này:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, members, sessions
Running migrations:
  Applying members.0001_initial... OK

(myproject) C:\Users\Your Name\myproject\myworld>

Câu lệnh SQL được tạo từ mô hình là:

CREATE TABLE "members_members" (
"id" INT NOT NULL PRIMARY KEY AUTOINCREMENT,
"firstname" varchar(255) NOT NULL,
"lastname" varchar(255) NOT NULL);

Bây giờ bạn có một bảng Thành viên trong cơ sở dữ liệu của bạn!

The post Models Trong Django first appeared on Techacademy.

source https://techacademy.edu.vn/models-trong-django/