我想不通,爲什麼我從clang
此警告我自己:爲什麼我得到;用'const char *'類型的表達式初始化'char *'會捨棄限定符?
function_prototype_const_modifier.c:13:8: warning: initializing 'char *' with an
expression of type 'const char *' discards qualifiers
[-Wincompatible-pointer-types]
char *ptr1 = source;
^ ~~~~~~
1 warning generated.
的代碼非常簡單
#include<stdio.h>
char *my_strcpy(char *destination, const char *source);
int main(void) {
char str1[] = "this is something";
char str2[] = "123456789123456789";
my_strcpy(str2, str1);
puts(str2);
return 0;
}
char *my_strcpy(char *destination, const char *source) {
char *ptr1 = source;
char *ptr2 = destination;
while(*ptr1 != '\0') {
*ptr2++ = *ptr1++;
}
*ptr2 = '\0';
return destination;
}
什麼想法?
我想'const'意味着_pointer_是恆定的,而不是指針對象。我會誤會的。 –
Jan從右到左閱讀(無論如何幫助我)。指向字符常量的指針。 char const *是一個指向字符的指針常量。 –
@JanDvorak「const」關鍵字適用於其右側的術語,如果其右側沒有術語,則僅將「const」關鍵字應用於其左側的術語。 – 2012-10-22 06:12:02