有网友碰到这样的问题“#include<stdio.h> void main() { char*s[]="rstuv"; printf("%s\n",*s); } 为什么有错?”。小编为您整理了以下解决方案,希望对您有帮助:
解决方案1:
你这个错 是弄错了 数组的赋值 数组定义的格式
char *s 这里是一个 指针数组。
加入 定义 char *s[3] 则 我们知道 s 有三个元素。 每个元素 都可以指向一个字符串。 s[0] s[1] s[2] 等 都可以指向字符串
我们一维数组有一种 定义形式是这样的: int data[]={1,2,3,4,5} 和int data[5]={1,2,3,4,5} 是等价的。
有上面我们知道 int data[]={1,2,3,4,5} 这样是通过 {} 内确定个数的。这里char*s[]="rstuv";
应该是 char*s[]={"rstuv"} s 只有一个元素 指向 rstuv
你可以把程序改成这样就可以知道了
#include<stdio.h>
void main()
{
char*s[5];
s[0]="rstuv";
printf("%s\n",*s);
}
只是 定义规定就这样 ;char*s[]="rstuv"; 这样是种错误的定义形式。
解决方案2:
...................../
解决方案3:
char*s[]={"rstuv"};
这一句定义了一个指针数组,数组只存储一个指针,就是字符串。
上一个语法错误。