簡體   English   中英

strcpy函數如何接受地址和字符串常量?

[英]how can strcpy function accept both adress as well as string constant?

void main() 
{
    char str1[10], str2[10] = "haha";
    strcpy(str1, str2);
    puts(str1);
    strcpy(str1, "tictoc");
    puts(str1) ;
} 

如上代碼所示,如​​何通過c語言中預定義的strcpy函數將地址以及字符串常量傳遞給指針變量?

將數組傳遞給函數時,它會衰減為指向第一個元素的指針。

在第一次調用的情況下, str1str都具有char [10]類型。 當傳遞給strcpy時,它們每個都退化為char * 同樣,字符串常量"tictoc"類型為char [7] (字符串中每個字符一個字節加上終止的空字節),該類型也衰減為char *

期望const參數的const可以采用同一數據類型的非const版本。 strcpy的第二個參數期望使用const char * ,因此char *也將滿足此參數。

另一方面,如果您嘗試將const變量傳遞給需要非const類型的函數,則會生成編譯器警告。

暫無
暫無

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

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