簡體   English   中英

C:如何將字符串參數的指針傳遞給函數?

[英]C: How do I pass a pointer of a string argument to a function?

argv數組是一個列表指針,每個都指向相應的參數,第一個元素是命令行參數的數量,對嗎?

我的問題是如何將字符串參數傳遞給函數? 在這個小例子中,我只是試圖在命令行中打印我作為參數寫的文本。

#include <stdio.h>
#include <stdlib.h>

void ptest(char *);

int main(int argc, char const *argv[])
{
    ptest(argv[1]);
    return 0;
}

void ptest(char *ptr)
{
    printf("%s\n", ptr);
}

此代碼無法編譯。 它給出了以下編譯錯誤:

teste2.c:8:8: warning: passing 'const char *' to parameter of type 'char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        ptest(argv[1]);
              ^~~~~~~
teste2.c:4:18: note: passing argument to parameter here
void ptest(char *);
             ^

那不是你的問題。 您的問題是您添加了const關鍵字,這意味着您有一個指向值數組的指針,其中值的數組無法更改。

您可以查看此信息以獲得更好的解釋。

在你的代碼中:

int main(int argc, char const *argv[])

刪除const ,你的代碼將編譯:

int main(int argc, char *argv[])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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