我试图编译一个非常简单的程序,该程序将字符串文字的基地址存储在指向char p
的指针中,然后使用指针p
如下打印字符串:
#include<stdio.h>
int main()
{
char *p = "hello";
printf("%s", p);
return 0;
}
错误地,我用
.C
扩展名而不是.c
扩展名保存了文件,并且我看到当我使用.C
扩展名进行编译时,还有一个警告:deprecated conversion from string constant to ‘char*’
当我编译带有
.c
扩展名的程序时,它不存在,我正在使用Code::Blocks 16.01。这里到底发生了什么? 最佳答案
显然,您的编译器通常将.C文件视为C++源,在这种情况下,实际上不建议使用此转换。如果将其重命名为.cpp,则编译器输出可能应该保持不变。