久了,忘了有些概念了,大家帮我分析哈
1.在宏名作用域内所有与宏名相同的字符都讲被替换;2.若一个函数没有return 语句,则什么都不会返回;
3.形参数组元素个数必须等于实参数组的元素个数;
4.char* s;s="ABCDE"
以上几句为什么不对?有大佬帮我分析一下吗?
对于宏定义中的形参,在替换列表中,如果不是作为#或##的操作数,那么将对应实参完全展开(相当于对实参进行求值),然后将替换列表中的形参替换掉.如果是#或##的操作数,那么不进行替换。如果在替换列表中发现当前正在展开的宏的名字,那么这里不进行替换
2.编译器会自动加上return 0(没写的话),程序停止
3.可以小于·自动补0
4,char*s;s=&p或者char*s=p
记得采纳噢噢噢噢{:10_256:}{:10_256:}{:10_256:}
AmosAlbert 发表于 2019-9-6 22:28
对于宏定义中的形参,在替换列表中,如果不是作为#或##的操作数,那么将对应实参完全展开(相当于对实参进行求 ...
第一个问题能详细解释一下吗?###什么意思,举个列子最好
还有第三个问题,实参有5个元素,传递的时候肯定也是五个啊,怎么会多或者少呢
第四题不是这个原因,我记得 原因是“ABCD”在字符串常量区,然后怎样怎样的,具体记不得了 楼主问的是C还是C++ 迷雾少年 发表于 2019-9-7 18:12
楼主问的是C还是C++
C,这是一套面试题里面的题目,C方向的
页:
[1]