Các Phép Toán Trên Con Trỏ
Có thể bạn quan tâm
- Sign in / Join
sinhvientot.net
Home Lập trình C/C++ Các phép toán trên con trỏ Facebook Twitter Pinterest WhatsApp Phép gán con trỏ
Hai con trỏ cùng kiểu có thể gán cho nhau.
Ví dụ
int a, *p, *q ;
float *f; a = 5 ;
p = &a ; q = p ; /* đúng */
f = p ; /* sai do khác kiểu */
Ta cũng có thể ép kiểu con trỏ theo cú pháp:
(<Kiểu kết quả>*)<Tên con trỏ> Chẳng hạn, ví dụ trên được viết lại:
int a, *p, *q ;
float *f;
a = 5 ; p = &a ; q = p ; /* đúng */
f = (float*)p; /* Đúng nhờ ép kiểu*/
Phép toán cộng và trừ trên con trỏ
- Chỉ có thể thực hiện phép toán cộng và trừ trên con trỏ
int a=50;
int *pa;
pa = &a;
pa ++;
- Giả sử biến a được lưu trữ tại địa chỉ 1000
- pa lưu giá trị 1000. Vì số nguyên có kích thước là 2 bytes, nên sau biểu thức “pa++;” pa sẽ có giá trị là 1002 mà không là 1001
| ++pa hoặc pa++ | Trỏ đến số nguyên kế tiếp đứng sau a |
| –pa hoặc pa– | Trỏ đến số nguyên kế tiếp đứng trước a |
| pa + i | Trỏ đến số nguyên thứ i đứng sau a |
| pa – i | Trỏ đến số nguyên thứ i đứng trước a |
| ++*pa hoặc (*pa)++ | Sẽ tăng giá trị a thêm 1 nếu pa đang trỏ đến a. |
| –*pa hoặc (*pa)– | Sẽ giảm giá trị a bớt 1 nếu pa đang trỏ đến a. |
| *pa++ | Sẽ tác động đến giá trị của số nguyên kế tiếp sau a |
- Mỗi lần con trỏ được tăng trị, nó trỏ đến ô nhớ của phần tử kế tiếp
- Mỗi lần con trỏ được giảm trị, nó trỏ đến ô nhớ của phần tử đứng trước nó
- Tất cả con trỏ sẽ tăng hoặc giảm trị theo kích thước của kiểu dữ liệu mà chúng đang trỏ đến
Cộng, trừ con trỏ với một số nguyên
Ta có thể cộng (+), trừ (-) 1 con trỏ với 1 số nguyên N nào đó; kết quả trả về là 1 con trỏ.
Con trỏ này chỉ đến vùng nhớ cách vùng nhớ của con trỏ hiện tại N phần tử.
Ví dụ: Cho đoạn chương trình sau:
int *pa;
pa = (int*) malloc(20); /* Cấp phát vùng nhớ 20 byte=10 số nguyên*/
int *pb, *pc;
pb = pa + 7;
pc = pb – 3;
Lúc này hình ảnh của pa, pb, pc như sau:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| pa | pc | pb |
Lưu ý:
- Ta không thể cộng 2 con trỏ với nhau;
- Phép trừ 2 con trỏ cùng kiểu sẽ trả về 1 giá trị nguyên (int). Đây chính là khoảng cách (số phần tử) giữa 2 con trỏ đó. Chẳng hạn, trong ví dụ trên pc-pa=4.
So sánh con trỏ
- Hai con trỏ có thể được so sánh trong một biểu thức quan hệ nếu chúng trỏ đến các biến có cùng kiểu dữ liệu
- Giả sử ptr_a và ptr_b là hai biến con trỏ trỏ đến các phần tử dữ liệu a và b. Trong trường hợp này, các phép so sánh sau là có thể:

Con trỏ NULL
là con trỏ không chứa địa chỉ nào cả. Ta có thể gán giá trị NULL cho 1 con trỏ có kiểu bất kỳ.
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 0Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012
April 16, 2016Biến-Hằng-Câu lệnh và biểu thức trong C/C++
April 16, 2016Cấ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, 2016Cách sử dụng hàm trong lập trình
April 16, 2016
Mảng một chiều
April 16, 2016 Load moreBà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
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 STORIESTELNET – OPEN SSH – VNC trên Linux
Mr Good - April 23, 2016 0Hướng dẫn cài đặt cơ bản Centos 6.5
Võ Tình Thương - January 17, 2018 0Từ khóa » Toán Tử Trong Con Trỏ
-
Toán Tử Con Trỏ Trong C++
-
8.1 Toán Tử Tăng, Giảm Dùng Cho Con Trỏ - Khóa Học C++
-
8.0 Con Trỏ - Khóa Học C++
-
C Cơ Bản: Toán Tử Tăng Giảm Của Con Trỏ - DevIOT
-
Các Phép Toán Trên Con Trỏ Và Chỉ Mục Mảng Trong C++ (Pointers ...
-
Con Trỏ Cơ Bản Trong C++ | How Kteam
-
Con Trỏ Trong C++ - Viblo
-
Toán Tử Con Trỏ Trong C++ | CppDeveloper
-
Chương 10: Con Trỏ
-
Bài 11: Con Trỏ Trong C - Học Lập Trình C Cơ Bản - VnCoder
-
[PDF] Bài 2 C/C++ Nâng Cao - Soict
-
Con Trỏ Và Cấp Phát động Trong C++ - TMA Solutions
-
Con Trỏ Trong C - Học Lập Trình C Online - Viettuts
-
Con Trỏ Và Mảng Trong C++ - Học Lập Trình C++ Online - VietTuts
-
Toán Tử Trong C++
-
Con Trỏ Trong C++ Là Gì
-
Con Trỏ (pointer) Trong C++ - Thủ Thuật
-
[PDF] Bài 10: Con Trỏ Và Mảng động - VNU-UET
-
Con Trỏ Trong C/C++ - VNOI
Công nghệ
Công nghệ
Giải pháp
Download
HTML/CSS
HTML/CSS
ASP.NET Core
Thủ thuật
Excel
PowerPoint
Excel
Công nghệ
Công nghệ
Download
Download