Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Thắc mắc về hàm trong c

  1. #1
    Ngày gia nhập
    03 2015
    Bài viết
    16

    Mặc định Thắc mắc về hàm trong c

    #include <stdio.h>

    int tinhSoChuSo(int n) {
    int dem = 0;
    while(n) {
    dem++;
    n /= 10;
    }
    return dem;
    }
    int main() {
    int n = 45681;
    tinhSoChuSo(n);
    printf("%d ", n);// why not 0?
    return 0;
    }

    Mọi người cho mình hỏi tại sao khi chạy xong hàm tinhSoChuSo() thì giá trị n vẫn giử nguyên mà không phải là 0
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    11 2013
    Bài viết
    62

    tại n ở đây làm tham số kiểu int hàm sẽ ko thể thay đổi giá trị của n. nếu bạn muốn thay đổi giá trị của n thì phải sử dụng biến con trỏ
    int tinhSoChuSo(int *n). bạn google tìm thêm về biến con trỏ và cách sử dụng

  3. #3
    Ngày gia nhập
    06 2015
    Nơi ở
    Lagi - Bình Thuận
    Bài viết
    1,558

    viết lại cho đúng.
    n = tinhSoChuSo(n);
    //
    dùng tham số int cũng OK
    ĐT : 0906.83.71.25
    email : vn8hien62@yahoo.com
    http://diendan.congdongcviet.com/threads/t334310::chu-quoc-ngu-da-lac-hau-chua.cpp?p=815219#post815219

  4. #4
    Ngày gia nhập
    03 2015
    Bài viết
    43

    Bạn chỉ cần đơn giản thêm & theo code như sau:
    Code:
    #include <stdio.h>
    
    int tinhSoChuSo(int &n) {
    int dem = 0;
    while(n) {
    dem++;
    n /= 10;
    }
    return dem;
    }
    int main() {
    int n = 45681;
    tinhSoChuSo(n);
    printf("%d ", n);// why not 0?
    return 0;
    }

  5. #5
    Ngày gia nhập
    07 2015
    Nơi ở
    Viet Nam
    Bài viết
    99

    Trích dẫn Nguyên bản được gửi bởi euginsane Xem bài viết
    Bạn chỉ cần đơn giản thêm & theo code như sau:
    Code:
    #include <stdio.h>
    
    int tinhSoChuSo(int &n) {
    int dem = 0;
    while(n) {
    dem++;
    n /= 10;
    }
    return dem;
    }
    int main() {
    int n = 45681;
    tinhSoChuSo(n);
    printf("%d ", n);// why not 0?
    return 0;
    }
    Đây là code C mà bạn.

  6. #6
    Ngày gia nhập
    01 2013
    Nơi ở
    Học viện Kỹ thuật Quân Sự
    Bài viết
    247

    Mặc định Thắc mắc về hàm trong c

    Hàm tinhSoChuSo(int n) là tham trị. (tức là chỉ lấy giá trị của biến truyền vào, Một bản copy sẽ được tạo trong quá trình thực hiện hàm). Vì vậy n bạn truyền vào từ hàm main giá trị sẽ không bị thay đổi.
    Trong C không có truyền kiểu tham chiếu như thế này tinhSoChuSo(int &n); Trong C thì chúng ta truyền con trỏ tinhSoChuSo(int *n);
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Nếu cần giúp đỡ, hỗ trợ:
    Bài Tập. Đồ Án. Tools. Phần mềm. Liên hệ:
    Facebook: http://www.facebook.com/thuecodedoan
    Website: https://thuecodedoan.wordpress.com
    Email: thuecodedoan@gmail.com
    Sđt: 094.76.76.854

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn