c语言中的变量生存期的问题 急求 求帮忙阿

Python013

c语言中的变量生存期的问题 急求 求帮忙阿,第1张

#include<stdio.h>

void f(int *p,int *q) //函数参数为指针

{p=p+1*q=*q+1}//p=p+1,这个时候p指向的位置改变了,如果此时读取p指向的值可能会发生错误,也可能会读到n的值,*q=*q+1通过操作地址改变了n的值

main()

{int m=1,n=2,*r=&m

f(r,&n)printf("%d,%d",m,n)

getch()

}

#include <stdio.h>

void fun(int *a,int *b)

{ int *c

c=aa=bb=c //这个没有什么意义,只是改变了a,b,c指向的地址,函数结束后,a,b,c都会释放.如果改成c=a*a=*b*b=*c你再看看效果

}

main()

{ int x=3,y=5,*p=&x,*q=&y

fun(p,q) printf("%d,%d,",*p,*q)

 fun(&x,&y)printf("%d,%d\n",*p,*q)

}

变量的生命周期是指变量在哪是定义,而不是在哪里使用。子函数包含在main(),在main()内定义的变量,在子函数也是可见的,即其值能传到子函数内,但在子函数定义的变量在main()是不可见的,即main()内不能使用子函数内的变量;但子函数可以定义同名变量掩盖全局变量的值:在子函数内,同名变量,是子函数内的变量起作用。

你的结论是错的。

结果都为0,是因为你没有给score赋值,score在c语言时默认的值是0,输出的结果才是0;如果你给score赋值,结果就会score的赋值。

数组没有问题就是因为你给数组赋值了,才显示正确的赋值。

楼上的说的也对,还有一点就是,静态的和动态的存储位置不一样.静态的在DATA区,如果没有给初值系统以0来初始化动态的在BSS区,没有给初始值的话值就是分配的存储单元的当前内容,对程序来说可以说是一个随机数.

主函数再特殊也是一个函数,说白了就是程序的入口地址,把他当做一般的函数就行.