关于c语言中结构体的一点小问题2
发布网友
发布时间:2023-11-24 02:11
我来回答
共4个回答
热心网友
时间:2024-07-14 05:00
& 是求地址运算符,当需要用地址时,例如 整型变量名,浮点变量名已知时,需要用地址,则加它。
例子: int num; float score; double exp; 输入格式 %d %f %lf:
scanf(" %d %f %lf",&num, &score, &exp);
例子: int num[5]; float score[5]; double exp[5]; 输入一个数组元素i,格式 %d %f %lf:
i=3;
scanf("%d %f %lf",&num[i], &score[i], &exp[i]);
注意,字符数组,输入字符串时用格式 %s,数组名就是数组首地址,这时不加 &:
char str[80]; scanf("%s" , str); 拍入 good_string, str 获得 "good_string"(双引号)
注意,字符数组,输入字符串时用格式 %c, 输入一个数组元素 加 &:
char str[80]; i=0; scanf("%c", &str[i]); 拍入 A, str[i] 获得 字符常量 'A' (单引号)。
你的 &student1.num,student1.name,&student1.score 这里成员name 是 char 数组,student1.name 已是字符串首地址,不能再加 &。
热心网友
时间:2024-07-14 05:01
除了char类型的数组和指针类型外,其它都需要加。假设m是结构体的一个成员,如果m是这样定义的:char m[数组长度]或类型 *m(假设已对m赋值,m已指向一个变量),则输入m时,不需要加&。
热心网友
时间:2024-07-14 05:01
你好!首先&是取地址符号,是取变量的地址,而字符串变量在内存中存放的直接是地址,所以不用加&符号,也就是%s对应的字符串变量。
而其他C语言中整型int,浮点型数float,double,字符char都需要用&符号。追答你的代码中,name这个结构体成员是字符串类型,所以不用加&号。
如果有不明白的地方或者其他问题可以追问我!
热心网友
时间:2024-07-14 05:02
南宋 辛弃疾追问老哥,你是打酱油的吧