发布网友 发布时间:2022-04-23 12:51
共3个回答
热心网友 时间:2023-08-16 05:59
首先这样编译会出错。
struct
{
char ch;
int pri;
}
定义结构体类型,后面没有跟分号,说明后面是该类型的变量列表,之后遇到Pri接下来的空格后面跟的lpri编译器就不知道要干什么了。
如果用struct
{
char ch;
int pri;
};,还是出错,因为之后的Pri没有声明或定义。
如果用struct Pri
{
char ch;
int pri;
};,纯C的话不行,Pri是结构体名而不是类型名,会编译出错。C++下会把Pri当作struct Pri,不会出错。
可以这么写:
typedef struct
{
char ch;
int pri;
}Pri;
Pri lpri[]={{'=',0},{'(',1},{'*',5},{'/',5},{'+',3},{'-',3},{')',6}};
Pri rpri[]={{'=',0},{'(',6},{'*',4},{'/',4},{'+',2},{'-',2},{')',1}};
最后两行也可以这样写:
Pri lpri[]={{'=',0},{'(',1},{'*',5},{'/',5},{'+',3},{'-',3},{')',6}},
rpri[]={{'=',0},{'(',6},{'*',4},{'/',4},{'+',2},{'-',2},{')',1}};
注意倒数第二行是分号还是逗号会影响初始化列表的语义。
(顺便,这个不是赋值。)
话说回来,一开始的写法去掉Pri是正确的(只是定义之后无法访问该类型,一般不推荐):
struct
{
char ch;
int pri;
}
lpri[]={{'=',0},{'(',1},{'*',5},{'/',5},{'+',3},{'-',3},{')',6}},
rpri[]={{'=',0},{'(',6},{'*',4},{'/',4},{'+',2},{'-',2},{')',1}};
====
[原创回答团]追问我是希望将“请输入第%d人的姓名和联系电话\n",i++”第几人这个由i来决定然后让int num[Max_num]上的数值等于i
Max_num这个在我自己那有定义#define Max_num 10
我用的是c,不是c++
还有谢谢你们这么快就来帮我解答
热心网友 时间:2023-08-16 05:59
struct
subject
{
int
score;
}*sub;
sub是一个结构体指针,因此初始化就把NULL赋值给sub就可以了。
而要想有score这个变量,sub必须指向一个可用内存,用malloc申请。
热心网友 时间:2023-08-16 06:00
x_num=(*last).num; ///数组都要用 strcpy进行字符串指针式赋值
char name[Max_name];///数组都要用 strcpy进行字符串指针式赋值
int num[Max_num]; //数组都要用 strcpy进行字符串指针式赋值
其实你换成 int num;就可以自己赋值了
用sancf("%d",p->num);追问我是希望将“请输入第%d人的姓名和联系电话\n",i++”第几人这个由i来决定然后让int num[Max_num]上的数值等于i
Max_num这个在我自己那有定义#define Max_num 10
我用的是c,不是c++
还有谢谢你们这么快就来帮我解答
追答纯C用 .分隔符~~