永发信息网

C语言的问题,高手进 static 在定义局部变量时是否只能赋值一次,再次定义时就没用

答案:6  悬赏:0  手机版
解决时间 2021-01-04 04:39
  • 提问者网友:嗝是迷路的屁
  • 2021-01-03 22:58
int a=4;
int f(int n )
{int t=0;static int a=5;
if(n%2){int a=6;t+=a++;}
else {int a=7; t+=a++;}
return t+=a+=;
]这是其中一段函数,是不是第一个static a=5 定义后,if语句中的对a赋值就没用
最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2021-01-09 23:42
static的意思是函数第一次执行时对变量初始化,之后再调用就不再执行该变量初始化,而保留上一次执行的结果。
你函数里面先声明了static int a=5;后面又int a = 6;不是重复定义吗?一个变量可以定义两次?
static int定义后程序里的赋值有用,并且该赋值会保留,不会随函数返回而失效,下一次调用时该变量值还是上一次最后的赋值结果而不是初始定义的值
全部回答
  • 1楼网友:長槍戰八方
  • 2021-01-10 03:56
一个是定义了三个float类型变量。另一个是定义了三个float类型变量,并赋初值为0。
  • 2楼网友:你可爱的野爹
  • 2021-01-10 02:50
static是静态变量,只初始化一次,可以多次赋值。
  • 3楼网友:醉吻情书
  • 2021-01-10 01:33
static意思是静态的。变量分常量和变量。只有常量只能赋值一次。是不是只能赋值一次是靠最后两个字(即常量或者变量)来区分的。 static变量(如:static int n)即静态变量。静态变量也是变量,只有静态常量才只能赋值一次。 变量只用定义一次。建议LZ多看看基本语法。
  • 4楼网友:摆渡翁
  • 2021-01-10 00:13
a=4; int f(int n ) {int t=0;static int a=5; //此处是对static变量的初始化。 if(n%2){int a=6;t+=a++;} //static变量在程序运行期间,只初始化一次。除了赋值操作外,变量                值不变! else {int a=7; t+=a++;} //同上 return t+=a+=;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯