指针数组,和小甲鱼打的一模一样,两种编译器编译不通过
# include <stdio.h>int main(void)
{
char *p1 = {
"第一行",
"第二行",
"第三行",
"第四行",
"第五行"
};
int i;
for (i = 0; i < 5; i++)
{
printf("%s\n", p1);
}
return 0;
}
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0144 "const char *" 类型的值不能用于初始化 "char *" 类型的实体 指针数组和数组指针 C:\Users\GIGABYTE\Source\Repos\指针数组和数组指针\源.cpp 10
错误(活动) E0144 "const char *" 类型的值不能用于初始化 "char *" 类型的实体 指针数组和数组指针 C:\Users\GIGABYTE\Source\Repos\指针数组和数组指针\源.cpp 6
错误(活动) E0144 "const char *" 类型的值不能用于初始化 "char *" 类型的实体 指针数组和数组指针 C:\Users\GIGABYTE\Source\Repos\指针数组和数组指针\源.cpp 7
错误(活动) E0144 "const char *" 类型的值不能用于初始化 "char *" 类型的实体 指针数组和数组指针 C:\Users\GIGABYTE\Source\Repos\指针数组和数组指针\源.cpp 8
错误(活动) E0144 "const char *" 类型的值不能用于初始化 "char *" 类型的实体 指针数组和数组指针 C:\Users\GIGABYTE\Source\Repos\指针数组和数组指针\源.cpp 9
VS2019编译不通过,DEV C++编译不通过 提示是 不能用(常量字符串的指针)初始化 (char *字符串的指针),前者的字符串是不可修改的,后者是可以修改的,所以指针类型不同。
我在vs2012上可以正常运行,在Dev-c++上有警告但可以运行。
可以在char *p1前加个const,就是const char *p1。
printf("%s\n", p1);这行里应该是p1吧 superbe 发表于 2019-9-18 14:08
提示是 不能用(常量字符串的指针)初始化 (char *字符串的指针),前者的字符串是不可修改的,后者是可以 ...
是p1就是不知道怎么复制过来,就变成这个了
但是在前面加了 const确实正常了,警告都没有了{:5_108:}
页:
[1]