Video Ngôn Ngữ C - 34 - Thử nghiệm lý thuyết call by value

c
video

(Lê Trần Đạt) #1
#include <stdio.h>
int thay_doi_gia_tri(int gia_tri_moi)
{
    gia_tri_moi = 101;
    printf("gia_tri_moi %d\n", gia_tri_moi);
    return 3;
}
int thay_doi_mang(int mang_moi[])
{
    mang_moi[0] = 1;
    return 0;
}
int main()
{
    int banh_my_opla = 1;
    banh_my_opla = thay_doi_gia_tri(banh_my_opla);
    printf("banh my opla = %d\n", banh_my_opla);

    int keo_keo[10] = {};
    printf("keo_keo[0] = %d\n", keo_keo[0]);
    thay_doi_mang(keo_keo);
    printf("keo_keo[0] = %d\n", keo_keo[0]);

    return 0;
}

#Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
#Thông tin về khóa học xem tại đây :

-Sự khác biệt giữa 2 khóa học cũ và mới :
+Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả.
+Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại… Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học cũ giúp đỡ việc lắng nghe và hiểu được tốt hơn.


Tổng hợp các video hướng dẫn lập trình C của Lê Trần Đạt
Sắp sếp số theo thứ tự tăng dần bị lỗi
Đổi giá trị 2 số cho nhau
(Dao Trong Bach) #2

Khi thực hiện hàm thay_doi_mang(keo_keo) thì giá trị của phần tử 0 của mảng keo_keo sẽ được gán bằng 1. Tại sao sau khi kết thúc rồi, ta thực hiện hàm

printf ("keo_keo[0] = %d\n", keo_keo[0]);

thì giá trị của phần tử 0 vẫn được lưu là 1 và in ra hả anh. Theo em hiểu thì call by value thì các thay đổi chỉ xảy ra trong hàm được gọi thôi. Khi kết thúc thì ko lưu lại nữa (ví dụ ở đoạn đầu video).


(Lê Trần Đạt) #3

This topic was automatically closed 9 days after the last reply. New replies are no longer allowed.


(Lê Trần Đạt) #4

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?