簡體   English   中英

將const char *傳遞給C中的函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM