30/09/2018, 16:07

Pointers to Functions và Command-line Arguments là gì?

Đọc trong sách thì gặp 2 phần này, nhưng rất khó hiểu.Cụ thể:

#include <stdio.h>
/* echo command-line arguments; 1st version */
main(int argc, char *argv[])
{
    int i;
    for (i = 1; i < argc; i++)
        printf("%s%s", argv[i], (i < argc-1) ? " " : "");
    printf("
");
    return 0;

Sao trong code trên, ở chỗ hàm main lại có thêm 2 tham số int argc,char *argv[] chi vậy. Nhờ mọi người giải thích giúp mình với.

Phạm Hoàng Tuấn viết 18:12 ngày 30/09/2018

Hàm main cũng là 1 hàm, cũng có thể có tham số đầu vào. Trong 1 số trường hợp, người ta muốn truyền tham số vào cho chương trình (Ví dụ chương trình khi mới chạy thì đọc file mytext1.txt, mytext2.txt) thì bạn phải truyền 2 file vào cho nó và bạn có thể dùng command line chạy như sau:

"C:\Users\cscott\Documents\myApp.exe" mytext1.tx, mytext2.tx

Trong hàm main:
argc : Số lượng tham số truyền vào. Ở đây là 2
char *argv[] : mảng chứa danh sách các tham số. Ở đây mytext1.tx, mytext2.tx. Dựa vào số lượng ham số ở trên để biết có bao nhiêu tham số ta có thể lấy.

Đó là kiến thức những gì mình nhớ được. Có gì anh @ltd vào xem có bổ sung gì không nhé a.

Dũng Kon viết 18:19 ngày 30/09/2018

Lên đây để biết thêm chi tiết bạn nhé

Nguyễn Minh Dũng viết 18:12 ngày 30/09/2018

Mọi người đã nói đầy đủ rồi, cảm ơn @tuancoi2506 và @Dung_Kon. Đạt đang viết C trên linux, nên dùng những chương trình sử dụng tham số hàm main rất nhiều. Tuy nhiên, cũng hiếm khi đụng tới phần code này vì người khác làm hết rồi. Khi nào có lỗi thì mới google hoặc dở tại liệu cũ ra xem. Nhưng ý của các bạn trong topic này giải thích đúng về nguyên tắc hoạt động của nó.

Đạt chưa xem video của @Dung_Kon post, nhưng hi vọng là nó đúng hehe. @14520054 coi xong nhận xét xem nội dung video có dễ hiểu không nhé

BaoLe viết 18:14 ngày 30/09/2018

Cảm ơn mọi mọi người về những nội dung kiến thức trên.

Dũng Kon viết 18:21 ngày 30/09/2018

Video này dễ hiểu, hồi trước em học cũng cái đối số dòng lệnh này chẳng hiểu nó là gì cả, lên youtube search thì thấy và thấy rất dễ hiểu. Anh cứ yên tâm em trùm youtube đó, cũng nhờ mấy cái video của anh định hướng đó

Dũng Kon viết 18:17 ngày 30/09/2018

Nếu bạn không hiểu thì có thể liên hệ facebook mình, có gì mình sẵn sàng giúp @14520054

BaoLe viết 18:09 ngày 30/09/2018

Cảm ơn bạn, nếu có gì không hiểu mình sẽ hỏi tích cực luôn.

Hung Pham Hoang viết 18:12 ngày 30/09/2018

cho mình hỏi khi mình code C thì ko build được ra file exe, thì mở command prompt lên và code như nào ạ.

Nguyễn Xuân Phúc viết 18:15 ngày 30/09/2018

Mình đính chính 1 tí là số tham số argc sẽ là 3, vì nó nhận chính tên file của nó là 1 tham số. Hay nói cách khác, command line của mình gõ bao nhiêu string, thì nó sẽ nhận bấy nhiêu string là tham số (bao hàm cả string gọi nó) cái này nó hơi khác với Java

Bài liên quan
0