j*******a 发帖数: 101 | 1 大家说说为何下面的代码输出是CBA?
const char * p = "ABCDEF";
printf("%c%c%c\n", *p, *(p++), *(p++)); |
c*****e 发帖数: 737 | |
j*******a 发帖数: 101 | 3 我用visual studio,还有linux,输出的都是CBA,所以问问大家这是为何。 |
c*****e 发帖数: 737 | 4 Oh, I forgot the expression evaluation is from right to left.
【在 j*******a 的大作中提到】 : 我用visual studio,还有linux,输出的都是CBA,所以问问大家这是为何。
|
c*****e 发帖数: 737 | 5 printf("%c%c%c\n", *p, *(p++), *(p++));
从右到左,左右一个是A,中间是p+1后指向的B,最左边是C了
输出就是CBA了。 |
j*******a 发帖数: 101 | |
j*******a 发帖数: 101 | 7 这个从右到左是C++的规范?还是依赖compiler? |
p*i 发帖数: 411 | |
b***u 发帖数: 12010 | 9 哪家公司出的这么脑残的问题?c++规范真有规定call func时先eval最右的么? |
r*****k 发帖数: 1281 | 10 能解释下吗?多谢
★ 发自iPhone App: ChineseWeb - 中文网站浏览器 |
|
|
r****t 发帖数: 10904 | 11 解释了是 undefined啊,快要成月经题了
【在 r*****k 的大作中提到】 : 能解释下吗?多谢 : : ★ 发自iPhone App: ChineseWeb - 中文网站浏览器
|
S**I 发帖数: 15689 | 12 C++标准没有规定function arguments的evaluation顺序,这个由编译器决定。
【在 j*******a 的大作中提到】 : 这个从右到左是C++的规范?还是依赖compiler?
|
S**I 发帖数: 15689 | 13 不是undefined,是unspecified
【在 r****t 的大作中提到】 : 解释了是 undefined啊,快要成月经题了
|
r*******n 发帖数: 266 | 14 in other word...fuck the interviewer
【在 S**I 的大作中提到】 : 不是undefined,是unspecified
|
h********w 发帖数: 221 | |
r*******t 发帖数: 8550 | 16 printf() could only be C calling convention (__cdecl) it is right to left,
because how many parameter inside () is unknown for called function, caller
need to push from right to left into stack, then the called function could
pop out the first parameter, the string, to know how many parameters to
process.
【在 j*******a 的大作中提到】 : 大家说说为何下面的代码输出是CBA? : const char * p = "ABCDEF"; : printf("%c%c%c\n", *p, *(p++), *(p++));
|
y*******o 发帖数: 6632 | 17 bro, it is undefined.
http://c.ittoolbox.com/groups/technical-functional/cpp-l/argume
caller
【在 r*******t 的大作中提到】 : printf() could only be C calling convention (__cdecl) it is right to left, : because how many parameter inside () is unknown for called function, caller : need to push from right to left into stack, then the called function could : pop out the first parameter, the string, to know how many parameters to : process.
|
s******3 发帖数: 7297 | |