代码阅读与分析示例1 例1:阅读分析程序 #include <stdio.h> int maino int a=10.b int *ipa ipa=a;/编译警告,运行出错!指针未初始化 lipa=&a; b-nipa; printf(%odn",b) a=100 pa, printf("ood\n", b) return 0;
代码阅读与分析 示例1 例1:阅读分析程序 #include <stdio.h> int main() { int a=10,b; int *ipa; *ipa=a; //编译警告,运行出错!指针未初始化 //ipa=&a; b=*ipa; printf("%d\n",b); a=100; b=*ipa; printf("%d\n",b); return 0; }
代码夙读与分析示例2 例1:阅读分析程序 点评: main (1)由于指针px没有 f int*px, x,y; 赋初值,并不指向变量 X=10: ,所以x改变后,y的 值并没有改变 * px=, pX;’X=20: px; (2)如果把*px=x;改 printf(“x=%dy=%d”,x,y); 为*px=&x;,则最后的y 值为20 该程序执行后输出:x=20,y=10
代码阅读与分析 示例2 例1:阅读分析程序 main() { int *px,x,y; x=10; *px=x; y=*px; x=20; y=*px; printf(“x=%d,y=%d”,x,y); } 该程序执行后输出:x=20, y=10 点评: (1)由于指针px没有 赋初值,并不指向变量 x,所以x改变后,y的 值并没有改变。 (2)如果把*px=x;改 为*px=&x;,则最后的y 值为20