【发布时间】:2015-09-22 01:28:14
【问题描述】:
标准 C 中是否允许函数使用别名 int * 修改以 const int * 给出的 int?换句话说,下面的代码是否保证在标准 C 中总是返回 42 和 1?
#include <stdio.h>
void foo(const int *a, int *b)
{
printf("%d\n", *a);
*b = 1;
printf("%d\n", *a);
}
int main(void)
{
int a = 42;
foo(&a, &a);
return 0;
}
【问题讨论】:
标签: c constants compiler-optimization