มีคำถามครับ เรื่องการเขียนโปรแกรม

กระทู้คำถาม
เข้าเรื่องเลยละกันครับ

void main()
{
cout<<"Hello"<<endl;
}


และ

int main()
{
cout<<"Hello"<<endl;
return 0;
}



ทั้ง 2 แสดงผลเหมือนกัน ที่ผมอยากสอบถามคือ
1. ผมสังเกตุว่า void main ไม่มี Return แต่ int มีเมื่อ Return คือการส่งค่ากลับแล้ว
   1.1 มันส่งกลับไปไหน ?
   1.2 ถ้าไม่ส่งจะเป็นอย่างไร ?
   1.3 ทำไมต้องส่งค่า 0 กลับไปส่ง 1 กลับไปได้มั้ย ?
2. บางทีผมก็เจอ int main(void) ด้วยมันคืออะไรครับ ?
3. และ int main(int argc, char *argv[]) ในวงเล็บคืออะไรครับ ?

พอดีหาอ่านในอากู๋แล้วแต่ยังงงๆ เพื่อนๆก็ไม่มีใครเป็น เลยไม่รู้จะถามใครครับ

ขอบพระคุณทุกท่านครับ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
1.1 มันส่งกลับไปไหน ?
- parent process

1.2 ถ้าไม่ส่งจะเป็นอย่างไร ?
- return เพื่อบอกให้ parent process รู้ว่า โปรแกรมมันทำงานสำเร็จหรือไม่ ถ้าไม่ส่ง parent process ก็ไม่รู้

1.3 ทำไมต้องส่งค่า 0 กลับไปส่ง 1 กลับไปได้มั้ย ?
- น่าจะได้ (ไม่แน่ใจ) ขึ้นอยู่กับว่า parent process เขียนโปรแกรมไว้ยังไง (ถ้าจำไม่ผิด) แต่ standard  0 = สำเร็จ, อื่นๆ = ไม่สำเร็จ

2. บางทีผมก็เจอ int main(void) ด้วยมันคืออะไรครับ ?
- ในโปรแกรมนี้จะไม่มี parameter จากภายนอกเข้ามา

3. และ int main(int argc, char *argv[]) ในวงเล็บคืออะไรครับ ?
- โปรแกรมนี้จะมี parameter เข้ามา โดย argc คือจำนวน parameter argv คือ parameter
  (ตัวอย่าง คำสั่ง ls -l , *argv จะเก็บ 2 ค่า คือ ls กับ -l ซึ่งเราสามารถนำ -l ซึ่งเป็น option ไปเขียนเงื่อนไขในการรันโปรแกรมอีกที ส่วน argc จะเก็บ   2 มันนับชื่อคำสั่งด้วย)
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่