VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

C Cơ Bản

Ngôn ngữ lập trình C là gì? Lịch sử của C Các tính năng của C Cài đặt môi trường lập trình C Chương trình C đầu tiên Flow của chương trình C Biến trong C Các kiểu dữ liệu trong C Ép kiểu trong C Từ khóa trong C Các toán tử trong C Comment trong C Các hằng số trong C printf và scanf trong C Ký tự đặc biệt trong C Xử lý lỗi trong C Tệp Header trong C Toán tử sizeof trong C

Câu Lệnh Điều Khiển C

Mệnh đề if-else Mệnh đề switch Vòng lặp for Vòng lặp while Vòng lặp do-while Lệnh Break Lệnh Continue Lệnh Goto

Con Trỏ

Con trỏ (pointer) trong C Con trỏ trỏ tới con trỏ Con trỏ và mảng trong C Quản lý bộ nhớ trong C

Structure & Union

Structure trong C Mảng của structure trong C Structure lồng nhau trong C Union trong C

C Math

Hàm math cơ bản trong C

C Function

Hàm trong C Hàm do người dùng định nghĩa Các kiểu hàm trong C Đệ quy trong C Call by value Call by reference

C Array

Mảng (array) trong C Mảng 2 chiều trong C Truyền mảng vào hàm
Chuỗi (String) Trong C
File I/O Trong C
Bài Tập C Có Lời Giải

Bài Học Bổ Sung

Enumeration (enum) trong C Preprocessors trong C Bảng ASCII
1 / 3
❮ ❯

Con trỏ trong C


Lệnh goto trong C
Con trỏ trỏ tới con trỏ trong C

Con trỏ (Pointer) trong C là một biến, nó còn được gọi là locator hoặc indicator chỉ ra một địa chỉ của một giá trị.

Con trỏ trong C

Nội dung chính

  • Các biểu tượng được sử dụng trong con trỏ
  • Toán tử địa chỉ
  • Khai báo con trỏ trong C
  • Ví dụ con trỏ trong C
  • Con trỏ NULL (NULL Pointer)
  • Sử dụng con trỏ trong C
    • Phân bổ bộ nhớ động
    • Mảng, hàm và cấu trúc (structure)

Các biểu tượng được sử dụng trong con trỏ

Biểu tượngTênMô tả
&Địa chỉ của toán tửXác định địa chỉ của một biến.
*Toán tử liên kết.Truy cập đến giá trị của địa chỉ.


Toán tử địa chỉ

Toán tử địa chỉ '&' trả về địa chỉ của một biến, bạn cần phải sử dụng '%x' để hiện thị địa chỉ của một biến.

#include<stdio.h>  

int main() {
    int number = 50;
    printf("Gia tri cua number la %d\n", number);
    printf("Dia chi cua number la %x", &number);
    return 0;
}

Kết quả:

Gia tri cua number la 50
Dia chi cua number la 23fe4c

Khai báo con trỏ trong C

Con trỏ bằng ngôn ngữ C được khai báo bằng cách sử dụng dấu '*'.

int *a;  //con tro tro toi int
char *c; //con tro tro toi char


Ví dụ con trỏ trong C

Ví dụ 1: sử dụng con trỏ để in ra màn hình địa chỉ và giá trị mà con trỏ trỏ đến.

Ví dụ con trỏ trong C

Như bạn thấy trong hình trên, biến con trỏ lưu trữ địa chỉ của biến số ví dụ fff4. Giá trị của biến số là 50. Nhưng địa chỉ của biến con trỏ p là aaa3.

Bằng cách sử dụng toán tử * ( toán tử liên kết ), chúng ta có thể in giá trị của biến con trỏ p.

#include<stdio.h>

int main() {
    int number = 50;
    int *p;
    p = &number; // luu tru dia chi cua bien number
    printf("Dia cua con tro p la %d\n", *p);
    printf("Dia chi cua con tro p la %x", p);
    return 0;
}

Kết quả:

Dia cua con tro p la 50
Dia chi cua con tro p la 23fe44

Ví dụ 2: sử dụng con trỏ để hoán đổi 2 số mà không sử dụng biến số thứ 3.

#include<stdio.h>  

int main() {
    int a = 10, b = 20;
    int *p1 = &a,*p2 = &b;  
    printf("Truoc khi hoan doi: *p1=%d *p2=%d\n", *p1, *p2);
    // hoan doi
    *p1 = *p1 + *p2;
    *p2 = *p1 - *p2;
    *p1 = *p1 - *p2;
    printf("Sau khi hoan doi: *p1=%d *p2=%d", *p1, *p2);
    return 0;
}

Kết quả:

Dia cua con tro p la 50
Dia chi cua con tro p la 23fe44

Con trỏ NULL (NULL Pointer)

Một con trỏ không được gán bất kỳ giá trị nào được gọi là con trỏ NULL. Nếu không có địa chỉ nào được chỉ định trong con trỏ tại thời điểm khai báo, bạn có thể chỉ định giá trị NULL. Đó là một cách tiếp cận tốt hơn.

int *p = NULL;

Trong hầu hết các thư viện, giá trị của con trỏ là 0 (zero).


Sử dụng con trỏ trong C

Có rất nhiều cách sử dụng con trỏ trong lập trình C.

Phân bổ bộ nhớ động

Trong ngôn ngữ C, chúng ta có thể tự động phân bổ bộ nhớ bằng các hàm malloc() và calloc() nơi con trỏ được sử dụng.

Mảng, hàm và cấu trúc (structure)

Con trỏ trong ngôn ngữ c được sử dụng rộng rãi trong các mảng, các hàm và cấu trúc. Nó giúp chúng ta viết ít code hơn và cải thiện hiệu suất. Ví dụ, sử dụng con trỏ trong việc call by value và call by reference.



Lệnh goto trong C
Con trỏ trỏ tới con trỏ trong C

Recent Updates

Sắp Tết 2024 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2024?LinkedList trong javaArrayList trong javaXử lý duplicate trong SQLPhím tắt hay dùng trong ExcelBảo mật tập tin ExcelDịch trang tính trong ExcelIn trang tính trong ExcelHàm VLOOKUP trong ExcelĐối tượng đồ họa trong ExcelSử dụng macro trong ExcelSử dụng Templates trong ExcelSử dụng chủ đề (theme) trong Excel

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml