【C语言】关于指针。 代码如下,求解

2024-12-03 05:54:24
推荐回答(4个)
回答1:

首先,奉劝楼主不要再纠缠 i++*++i 诸如此类的代码了!
这样的代码极其 不规范 ,它的行为是 未定义 的!!!
不同的编译器,可以有不同的运算结果!
但有一点可以确定:执行之后,i值增加了2!而中间的计算过程未定义!

TurboC、BorlandC:输出 5
VS2010(Visual C++ 11):输出 9
gcc:未作测试,你可以试试看

详细请查看我的博客文章:http://hi.baidu.com/chenqa08/blog/item/108ea51cc7e6fa4efa19b841.html

回答2:

#include "stdafx.h"
#include "stdio.h"

int main(int argc, char* argv[])
{
static int a[10]={1,3,5,7,9};
int *p=a;
int *p1=a;

printf("%d*%d=%d\n",(*(p1++)),(*(++p1)),(*(p++))*(*(++p)));//中间的星号是乘号,其它你就明白了

return 0;
}

回答3:

**++p
这里的第一个*是乘的意思
第二个*才是取值

回答4:

厉害啊!