unsigned x=257; short y=1,z=2; void proc1(void); void main() { int *p,*q; p=&x; q=&z; printf("x=%u,z=%d\n",x,z); proc1(); printf("x=%u,z=%d\n",x,z); return 0; }double x; void proc1() { x=-1.5; }
时间: 2024-04-22 14:21:53 浏览: 85
这段代码中,主函数中的变量x是一个无符号整型数,赋值为257,y和z分别是short类型的变量,赋值为1和2。在主函数中定义了两个指针变量p和q,分别指向x和z的地址。然后输出x和z的值,再调用proc1函数,将x赋值为-1.5。最后再次输出x和z的值。
在调用proc1函数之前,x的值为257,z的值为2。调用proc1函数后,x的值变为-1.5,z的值仍为2。这是因为在主函数中定义的p指针指向了x的地址,而在proc1函数中没有改变p指针所指向的地址,因此proc1函数中对x的修改会影响到主函数中的x变量。而z的值未被改变是因为在主函数中定义的q指针指向了z的地址,但在proc1函数中并没有修改q指针所指向的地址,因此z的值未被改变。
阅读全文