void衹是表示不需要函數返回值。由於C語言衹有函數語法,與BASIC等語言有過程不同,就函數的概念來説,都是有返回值的,這與數學上的函數概念一致,而過程在概念上就不需要返回值,所以函數和過程的區別,是有沒有返回值而已。C由於沒有過程的概念,所以全部都是函數,而爲了照應過程的概念,就定義了返回值爲void的函數形式,那就是模仿過程。事實上,在當今編程的領域,函數和過程已經沒有差別了,函數可以沒有返回值,而很多過程也有返回值,所以無需糾結這個問題。
void f()的函數,表示它沒有返回值,那麽在語法上,void f() { return 10; }這樣的代碼,在編譯器層次上可能會報錯;同樣的,若是int f() {}沒有寫return,則編譯時也會報錯。這些都是語法檢查層面上的,一般編譯器都會檢查出來。程序員所要做的,就是明確自己的邏輯:你的函數到底是否需要返回值,真的不需要,就寫void。
函數內部的局部變量,對外沒有影響,外部不能訪問函數內部的變量,而在函數內部,對自己所擁有的變量做任何處置,都是自由的,即你完全可以print出內部變量,不用擔心外面。
在內就是自己的世界,不要管外面;在外別去干涉人家內部。這是寫程序的原則,你在函數外部顧慮函數內部幹嘛!不要有這類糾纏不清的思想,學會“分析”,即分拆考慮,分拆就是相對獨立的,隔離的,(暫時地)與別的無關的。學過高中物理的,都應掌握這種分析的思維方式,編程也要這樣。你的問題,就屬於牽扯太多,糾纏不清,考慮不該考慮的。
[
本帖最后由 TonyDeng 于 2015-3-6 23:21 编辑 ]