如何输出一个结构体中的数组??
typedefstruct{char*ch;intlength;}Str;假设中间已经给str进行了赋值操作for(p=0;p<str.length;p++){print...
typedef struct
{
char *ch;
int length;
} Str;
假设中间已经给str进行了赋值操作
for(p=0;p<str.length;p++)
{
printf("%d\n",str.ch[p]);}
最后想输出str中的每一个数据要怎么做??为什么上面的for循环不行 展开
{
char *ch;
int length;
} Str;
假设中间已经给str进行了赋值操作
for(p=0;p<str.length;p++)
{
printf("%d\n",str.ch[p]);}
最后想输出str中的每一个数据要怎么做??为什么上面的for循环不行 展开
1个回答
展开全部
首先你的循环的判断p<str.length,C语言中这样是获取不到长度的,你可以试试p<sizeof(str)/sizeof(str[0]);
输出语句改成 printf("%s,%d", str[i].ch, str[i].length);就可以输出了
typedef struct
{
char *ch;
int length;
} Str;
int main() {
Str str[2] = {{"ab",1},{"cd",2}};
for(int p=0;p<sizeof(str)/sizeof(str[0]);p++){
printf("%s,%d\n",str[p].ch,str[p].length);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询