函数结构体的指针
答案:2 悬赏:0
解决时间 2021-12-22 10:43
- 提问者网友:清茶柒夏
- 2021-12-21 15:42
#include
main()
{
struct stu
{
int num;
char *name; 为什么这里的name前面要加*?
char sex;
float score;
}boy2,boy1={102,"zhang ping",'M',78.5};
boy2=boy1;
printf("Number=%d\nName=%s\n",boy2.num,boy2.name); 这里的boy2.name表示的不是地址码?
printf("Sex=%c\nScore=%.1f\n",boy2.sex,boy2.score);数字
}
最佳答案
- 二级知识专家网友:努力只為明天
- 2021-12-21 16:11
因为name是一个指向地址的变量,通常用char * 来表示字符串,因为char只能表示一个字符,要表示一连串的字符怎么表示呢:首先是在内存中的规则,这些字符一定是连续存储在内存中的;然后是如何获取它们,只需要第一个字符的地址和结束符就能表示一段字符串了。name指向的就是第一个字符的地址,结束符规定的是ASC码为0的字符,在你打印的地方,boy2.name对应的占用符是%s,表示打印字符串,系统会自动去boy2.name所指的地址开始,读取字符,直到读到结束符为止,把这段字符串打印出来。
全部回答
- 1楼网友:爱情是怎么炼成的
- 2021-12-21 17:47
你的结构体成员是指针,你的.a=fun1,.b=fun2,.c=fun3,就是指针指向的地址,首先你得定义fun1,fun2,fun3为int,然后给他们赋值,你的成员是指向int类型函数的指针,你可以这样如:
#include
int fun1(); //声明函数
int fun2();
int fun3();
void main()
struct abc
{
int (*a)();
int (*b)();
int (*c)();
};
a=fun1;
b=fun2;
c=fun3;
调用函数
函数体
你那那样系统能识别吗
我要举报
大家都在看
推荐资讯