VietTuts

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

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • Python
  • PHP
  • Eclipse
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Phần mềm tiện ích
    • Cấu trúc dữ liệu và giải thuật
    • Học lập trình C#
    • 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

Truyền tham chiếu và tham trị trong C


Học lập trình C++
Học lập trình Java

Một điều khá quan trọng trong C đó là truyền tham chiếu và tham trị vào một phương thức (Function).

Truyền tham chiếu là truyền địa chỉ ô nhớ của biến, do đó khi thay đổi giá trị của biến bên trong phương thức thì giá trị của biến cũng bị thay đổi bên ngoài phương thức.

Truyền tham trị là truyền giá trị của biến (không phải là địa chỉ ô nhớ), khi đó phương thức sẽ tự động tạo ra một địa chỉ ô nhớ mới để lưu trữ giá trị này, do đó nó chỉ được thay đổi trong phương thức hiện hành và giá trị của biến không bị thay đổi bên ngoài phương thức hiện hành.

Truyền

Hãy xem các ví dụ sau để hiểu rõ về truyền tham chiếu và truyền giá trị trong C.


Nội dung chính

  • Ví dụ truyền tham trị trong C
  • Ví dụ truyền tham chiếu trong C

Ví dụ truyền tham trị trong C

#include<stdio.h>

void change(int num) {
    num = num + 1;
}

int main() {
    int x = 100;
    printf("Truoc khi goi phuong thuc x = %d \n", x);
    change(x); // truyen tham tri vao phuong thuc
    printf("Sau khi goi phuong thuc x = %d \n", x);
    return 0;
}

Kết quả:

Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 100

Trong ví dụ trên, giá trị của biến x không bị thay đổi bên ngoài phương thức change(), mặc dù bên trong phương thức change() chúng ta đã cố gắng thay đổi bằng cách tăng m lên 1.



Ví dụ truyền tham chiếu trong C

Lưu ý: để hiểu về truyền tham chiếu trong C, bạn phải có hiểu biết về con trỏ (pointer) trong C.

#include<stdio.h>

void change(int *num) {
    *num = *num + 1;
}

int main() {
    int x = 100;
    printf("Truoc khi goi phuong thuc x = %d \n", x);
    change(&x); // truyen tham chieu vao phuong thuc
    printf("Sau khi goi phuong thuc x = %d \n", x);
    return 0;
}

Kết quả:

Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 101

Trong ví dụ trên, Giá trị của biến x bị thay đổi cả bên trong và bên ngoài phương thức change().


Học lập trình C++
Học lập trình Java

Recent Updates

Dãy số Fibonacci trong C#Bài tập C# có lời giảiToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8HttpClient trong Angular 7Service trong Angular7Directive trong Angular 7Component trong Angular 7Hướng dẫn lập trình Angular 7 với trình soạn thảo Visual Studio CodeCài đặt Angular 7Các lệnh Angular CLITổng hợp các thẻ mới trong HTML5

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
Học servlet
Học jsp
Học Hibernate
Học Struts2
Học Spring
Học SQL

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

About VietTuts.Vn

Hệ thống bài học trên VietTuts.Vn bao gồm các bài lý thuyết và thực hành về các công nghệ java và công nghệ web. Các bài lý thuyết trên hệ thống VietTuts.Vn được tham khảo và tổng hợp từ các trang http://javatpoint.com, http://www.tutorialspoint.com, http://docs.oracle.com/en …

Scroll back to top

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