1 #include <stdio.h>
 2 int* inc(int val)
 3 {
 4     int a = val;
 5     a++;
 6     return &a;
 7 }
 8 
 9 int main(void)
10 {
11     int a = 10;
12     int *val = inc(a);
13     printf("\n Increamented value is equal to [%d] \n", *val);
14 
15     return 0;
16 }
A:虽然上面的代码有时运行会很好,但是在方法 inc() 中有很严重的隐患,因为它返回了局部变量的地址。��inc()方法执行后,再次使用局部变量的地址就会造成不可估量的结果。解决之道就是传递变量a的地址给main()。PS:我觉得最后一句的说法有问题。
12 处理printf()参数
Q:请问以下代码的输出是什么?
#include<stdio.h>
 
int  main( void )
{
    int  a = 10, b = 20, c = 30; 
    
    printf ("\n %d..%d..%d \n", a+b+c, (b = b*2), (c = c*2));
    return  0;  
}
A:程序的输出如下:
110..40..60
这是因为参数都是从右向左处理的,然后打印出来却是从左向右。

