[英]Passing const char * to a function in C
我試圖寫一個以const char *
作為參數的函數,但我想不出如何以一種有用的方式將這種數據傳遞給函數。 如果我有功能:
void tokenize(const char * c) { }
我想用一個硬編碼的值(例如反斜杠)來調用此函數,什么是最好的方法? 如何將硬編碼的值轉換為const char *
?
字符串文字可以完全合法地代替const char *
參數:
tokenize("\\");
一個更具說明性的示例將是存儲指向該字符串的指針,然后傳遞該指針:
const char *token = "\\";
tokenize(token);
但是,字符串文字與char *
不兼容,即使編譯器允許它也是如此。 這與字符串文字的存儲方式有關-它們通常位於內存的只讀區域中,嘗試寫入它們將導致不確定的行為,很可能是某種保護錯誤。
您可以使用字符串文字,例如"\\\\"
,並將其作為參數傳遞給函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.