我有如下原型void init(int *argc,char**argv);
但在這個功能在我的計劃,我不需要或者甚至需要提供這樣的論證的後續調用的函數。所以,我做了一個名爲int_null
(哦,糟糕的名字,我知道)變量,並傳遞給函數init(&int_null, NULL)
但來到我的腦海裏NULL
具有零的標準值,我可以用它代替int_null
變量(只是爲了規避創建這個變量),作爲下面的init(NULL,NULL)
它工作正常。但是我可以有一些問題嗎?一些實現定義NULL
爲(void*)0
或0
或0L
,我敢肯定,如果它可以是一個問題。該功能需要了解argc
爲零。我可以傳遞一個NULL,其中int *是預期的嗎?
回答
char **bla1 = (void *) 0;
char **bla2 = 0;
char **bla3 = 0L;
所有這些分配(初始化作爲每個分配新建分配FY完成)在C和等同有效的。
如果預期參數的類型爲int *
或char **
,則可以始終傳遞NULL
。
由於在他的評論中增加了@R..,這最後一句是真實的,但接受可變數量的參數和函數的原型(老式)語法中定義的函數是例外。在這兩種情況下都需要演員陣容。
嗨Ouah! ..請查看我對這個問題的評論,並讓我知道如果我錯了。並且很好回答! –
@GrijeshChauhan它始終是隻要真如'ptr'是指向對象或一個指向'void'('ptr'不能是一個函數指針)。 – ouah
這對於沒有原型的可變參數函數和函數是錯誤的... –
NULL
應該工作;既0
和(void *)0
可以分配給任何指針類型中C.
- 1. R6010:我可以將一個int&傳遞給一個接受int的函數嗎?
- 2. 我可以傳遞一個非泛型類型,其中泛型類型是預期的嗎?
- 3. Java中的int可以爲null嗎?
- 4. 是一個int * NULL的默認值嗎?
- 5. 我們可以在url參數中傳遞null嗎?
- 6. 我如何傳遞一個文件名以空間,因此可以在預期
- 7. 我可以傳遞一個字符串istream_iterator <int>
- 8. 我可以將一個變量傳遞給一個函數嗎?
- 9. 我們可以在ExplicitWait期望條件中傳遞一個條件參數嗎?
- 10. 你可以傳遞一個int數組到Java中的泛型方法嗎?
- 11. 你可以將null傳遞給Mule中的一個invoke組件嗎?
- 12. 我可以在Oracle中爲varchar2傳遞一個數字嗎?
- 13. 我可以在scheduledTimerWithTimeInterval中傳遞一個UIButton嗎?
- 14. 我可以在另一個文件中使用「int」而不是「extern」int嗎?
- 15. 在RIA Services SubmitChanges()期間可以傳遞其他信息嗎?
- 16. 是整數參數傳遞給setContentView(int)的一個指針嗎?
- 17. 我可以傳遞一個對象到argparse.add_argument嗎?
- 18. 我可以傳遞一個成員函數到mu :: Parser :: DefineFun()嗎?
- 19. 我可以通過引用傳遞一個對象嗎
- 20. 我可以將一個長bash命令傳遞給asyncio.subprocess.create_subprocess_exec()嗎?
- 21. 我可以通過引用傳遞一個鎖對象嗎?
- 22. 我可以將一個列表傳遞給os.getenv()嗎?
- 23. 我可以在finish()上傳遞一個Intent extra嗎?
- 24. 我可以傳遞一個const char *數組給execv嗎?
- 25. 我可以將一個對象從Angular2傳遞給MVC5嗎?
- 26. 我可以傳遞一個字符串到fopen()嗎?在c
- 27. 我可以用JSF param標籤「傳遞」一個對象嗎?
- 28. 我可以將一個String []列表傳遞給Freemarker嗎?
- 29. 我可以爲C中的變量傳遞多個值嗎?
- 30. 傳遞一個NULL值,以日期時間字段在LINQ
我相信,如果有'ptr'是任何一個指針類型的幾乎所有你能始終指定'PRT = NULL'沒有強制類型轉換並沒有什麼問題 –