用 const 初始化结构数组
initialize array of structs with const
typedef struct{
int nim;
float ipk;
char nama[50];
char alamat[50];
} dataMahasiswa;
int main() {
dataMahasiswa p[MAX];
p[0] = (const dataMahasiswa){120321004,4.00,"DAVID LEO","SURABAYA"};
p[1] = (const dataMahasiswa){120321002,4.00,"HANIF AHSANI","NGANJUK"};
}
const dataMahasiswa 的含义和作用是什么?
当我删除 (const dataMahasiswa)
时会发生什么(错误:'{' 标记前的预期表达式)
限定符 const 在复合文字中是多余的
p[0] = (const dataMahasiswa){120321004,4.00,"DAVID LEO","SURABAYA"};
p[1] = (const dataMahasiswa){120321002,4.00,"HANIF AHSANI","NGANJUK"};
你可以直接写
p[0] = (dataMahasiswa){120321004,4.00,"DAVID LEO","SURABAYA"};
p[1] = (dataMahasiswa){120321002,4.00,"HANIF AHSANI","NGANJUK"};
在这两个语句中,复合文字被分配给数组 p 的两个元素。
发生此错误是因为编译器无法获得正确的 struct
(数据类型)来转换给定的数据。此功能在 C99 中首次引入,您应该阅读 this。
但是,在 C++
中,您不需要在 {
之前键入 struct
名称,大多数现代 C++
编译器会自动执行此操作。
此外,您不需要在 struct
姓名前写 const
。
p[0] = (dataMahasiswa){120321004,4.00,"DAVID LEO","SURABAYA"};
p[1] = (dataMahasiswa){120321002,4.00,"HANIF AHSANI","NGANJUK"};
typedef struct{
int nim;
float ipk;
char nama[50];
char alamat[50];
} dataMahasiswa;
int main() {
dataMahasiswa p[MAX];
p[0] = (const dataMahasiswa){120321004,4.00,"DAVID LEO","SURABAYA"};
p[1] = (const dataMahasiswa){120321002,4.00,"HANIF AHSANI","NGANJUK"};
}
const dataMahasiswa 的含义和作用是什么?
当我删除 (const dataMahasiswa)
时会发生什么(错误:'{' 标记前的预期表达式)
限定符 const 在复合文字中是多余的
p[0] = (const dataMahasiswa){120321004,4.00,"DAVID LEO","SURABAYA"};
p[1] = (const dataMahasiswa){120321002,4.00,"HANIF AHSANI","NGANJUK"};
你可以直接写
p[0] = (dataMahasiswa){120321004,4.00,"DAVID LEO","SURABAYA"};
p[1] = (dataMahasiswa){120321002,4.00,"HANIF AHSANI","NGANJUK"};
在这两个语句中,复合文字被分配给数组 p 的两个元素。
发生此错误是因为编译器无法获得正确的 struct
(数据类型)来转换给定的数据。此功能在 C99 中首次引入,您应该阅读 this。
但是,在 C++
中,您不需要在 {
之前键入 struct
名称,大多数现代 C++
编译器会自动执行此操作。
此外,您不需要在 struct
姓名前写 const
。
p[0] = (dataMahasiswa){120321004,4.00,"DAVID LEO","SURABAYA"};
p[1] = (dataMahasiswa){120321002,4.00,"HANIF AHSANI","NGANJUK"};