a = A,B,C; 这是什么意思?

realfishhook 2005-08-02 08:41:07
是这样的:
定义了几个函数:
A()
{};

B()
{};

C()
{};

然后,在主程序中这样操作:
a = A,B,C;
这是什么意思啊;
把这几个函数都执行一遍吗?从左道右执行?a的值是A()的返回值?

谢谢大家!
...全文
357 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bugebear3 2005-08-23
  • 打赏
  • 举报
回复
A()
{};

B()
{};

C()
{};

然后,在主程序中这样操作:
a = A,B,C;
---------------------------------------------
a = A \\ 肯定a是一个函数指针了;至于后面的B和C,建议楼主检查一下,是否是输入错误.因为好象没
有这样写的理由.
fujingn188 2005-08-03
  • 打赏
  • 举报
回复
逗号表达式中的逗号运算优先级比等号底,所以最好a的值是A,如果写成a=(A,B,C)那a的值应该是C.
XBox360 2005-08-03
  • 打赏
  • 举报
回复
a=A(),然后调用B(),C()
sunshine810 2005-08-02
  • 打赏
  • 举报
回复
你的问题有两点:
一、是逗号运算符。
二、是关于函数的。
a到是三个函数中的哪个返回值,这是要看函数的,若给出的三个含数中都无默认参量,哪就是函数c的地址,它是一个被压入栈中的地址,且它是个栈帧的地址值。若他们个函数有默认参量,那就一定是函数c的返回值。
关于值是A,B,C中的哪个,这是逗号运算符的事!
megaboy 2005-08-02
  • 打赏
  • 举报
回复
晕,逗号的级别最低的,应该先算a=A,楼上是正确的。唉,受骗了一次,呵呵。
jixingzhong 2005-08-02
  • 打赏
  • 举报
回复
根据逗号表达式的意义 以及 它的优先级别


a = A,B,C;

表示 a = A

然后依次计算 B C

a = A ,应该是 一个地址赋值

后面的 B,C 是无效的 !




如果是 a=A(),B(),C();

那么函数会依次 执行
truewill 2005-08-02
  • 打赏
  • 举报
回复
如果编译器认为逗号是从右到左的,那么 a = A 即 A 函数的地址

不加括号就是函数A的地址
aiguozhou 2005-08-02
  • 打赏
  • 举报
回复
楼主能说明白点么?
函数好像都是有括号的吧,至少我见过的是有括号的。其他情况不知道有没有。
楼主还是吧代码全部贴上来看看就知道了
megaboy 2005-08-02
  • 打赏
  • 举报
回复
这是逗号表达式嵌套,但不是把这几个函数都操作一遍,如果是操作一遍,这个表达式应该这样写:

a=A(),B(),C();

由于函数名是地址常量,有可能是最后把C这个地址常量赋予a,你看看a是不是一个函数指针?
itic 2005-08-02
  • 打赏
  • 举报
回复
我想a的值可能是c()的值.按逗号表达式的..
都执行一次..??这个不知道
下面接着说吧

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧