结构值中的类型不匹配 #包括 内部主(空){ 结构体的构造 { 字符名[20]; 浮动价格; }; 结构书b={5}; printf(“%f\n”,b.price); 返回0; }
那么,正在通过的第5条发生了什么?它存放在哪里?还是根本就没有存储结构值中的类型不匹配 #包括 内部主(空){ 结构体的构造 { 字符名[20]; 浮动价格; }; 结构书b={5}; printf(“%f\n”,b.price); 返回0; },c,C,那么,正在通过的第5条发生了什么?它存放在哪里?还是根本就没有存储 即使我打印b.name,也不会打印任何内容。将5用作结构的第一个元素的初始值设定项。这恰好是一个数组,因此5初始化该数组的第一个元素 在C语言中,如果使用括号内的初始值设定项,那么所有元素都会被初始化;而您未指定的将获得0。因此,这与: #include <stdio.h> int main(void) { struct book { char name[20]; f
即使我打印b.name,也不会打印任何内容。将
5
用作结构的第一个元素的初始值设定项。这恰好是一个数组,因此5
初始化该数组的第一个元素
在C语言中,如果使用括号内的初始值设定项,那么所有元素都会被初始化;而您未指定的将获得0。因此,这与:
#include <stdio.h>
int main(void) {
struct book
{
char name[20];
float price;
};
struct book b={5};
printf("%f\n",b.price);
return 0;
}
浮点数上的printf
将打印0
。如果尝试将b.name
打印为字符串,则将打印包含一个值为5
的字符的字符串。在大多数系统上,这将是一个不可打印的字符,因此您可能无法获得可见的输出
要返回
5
,您可以执行以下操作:printf(“%d\n”,b.name[0])代码>将5
用作结构的第一个元素的初始值设定项。这恰好是一个数组,因此5
初始化该数组的第一个元素
在C语言中,如果使用括号内的初始值设定项,那么所有元素都会被初始化;而您未指定的将获得0。因此,这与:
#include <stdio.h>
int main(void) {
struct book
{
char name[20];
float price;
};
struct book b={5};
printf("%f\n",b.price);
return 0;
}
浮点数上的printf
将打印0
。如果尝试将b.name
打印为字符串,则将打印包含一个值为5
的字符的字符串。在大多数系统上,这将是一个不可打印的字符,因此您可能无法获得可见的输出
要返回5
,您可以执行以下操作:printf(“%d\n”,b.name[0])代码>初始化在结构中发生,顺序是在声明类型为struct
的变量创建时传递的值。因此5
自然流向字符数组的第一个元素。因此5存储为字符数组的第一个元素。初始化struct
键入变量您不能跳过用于初始化的变量,您必须按照结构中变量的声明顺序进行初始化。Matt McNabb回答说,初始化在结构中按照创建结构
类型的变量时传递值的顺序进行,就在声明之后。因此5
自然流到字符数组的第一个元素。因此5存储为字符数组的第一个元素。初始化struct
类型变量时,不能跳过用于初始化的变量,您必须按照结构中变量的声明顺序进行初始化。Matt McNabb回答说5不是可打印字符。试试大一点的,比如65。他们尝试打印名称。5不是可打印字符。试试大一点的,比如65。他们试着打印名字。