Day6 | 每天五道题

1、static局部变量和普通局部变量有什么区别?

答︰

相同点:都是局部变量,在函数内部定义,仅能被该模块内部的语句所访问。

不同点:

1)内存分配与释放:

static局部变量在编译阶段,函数还未执行的时候,就已经分配了变量空间。普通局部变量只有在执行到定义变量的语句时,才会分配内存空间。

static修饰的局部变量在内存中存放在静态存储区,static修饰的局部变量只有在整个程序结束的时候才会自动释放。若下次调用该局部变量所在的函数时,不需要对它重新声明,且会保留上一次调用存入的值。普通局部变量存放在堆栈区,动态分配,其离开作用域‘{}’后,就会自动销毁,释放内存空间,无法再次使用此变量。

2)初始化

static局部变量不初始化时,默认值为0;普通局部变量不初始化时,默认值为随机值。

2、static函数与普通函数有什么区别?

答︰

1)用static修饰的函数,限定在本源文件中,不能被本源文件以外的源文件调用。而普通的函数,默认是extern的,也就是说,其它源文件可以调用该函数。
2)在函数的返回类型前加上关键字static,函数就被定义成为静态函数。普通函数的定义和声明默认情况下是extern的,但static函数只是在声明他的文件当中可见,不能被其他文件所用。

3、如何将数组作为函数的参数?

答︰

第一,用数组元素作为函数实参,其用法与用普通变量作实参时相同,向形参传递的是数组元素的值;

第二,用数组名作函数实参,向形参传递的是数组首元素的地址,而不是数组全部元素的值。如果形参也是数组名,则形参数组首元素与实参数组首元素具有同一地址,两个数组共占同一段内存空间。利用这一特性,可以在调用函数期间改变形参数组元素的值,从而改变实参数组元素的值。

4、二维数组的定义和初始化的正确形式有哪些?  

答︰

1) 分行,如:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};  

2) 按数组排列的顺序将所有数据写在一个花括号内, 如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};  

3) 部分元素初始化。如:int a[3][4]= {{,1},{0,6},{0,0,11}};  

4)如果对全部元素都赋初值,则定义数组时可以不指定第一维的数组长度, 如:int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 

5、常用逻辑运算符及其含义。

答︰

C语言提供3种逻辑运算符:

1.&&(逻辑与)相当于其他语言中的and

2.||(逻辑或)相当于其他语言中的or

3.!(逻辑非)相当于其他语言中的not


&&和&、||和|有什么区别?

答︰1、&和|对操作数进行求值运算,&&和||只是判断逻辑关系。

2、&&和||在判断左侧操作数就能确定结果的情况下就不再对右侧操作数求值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值