数据类型与运算符、表达式问题解答

1、变量的作用域如何区分?
变量有效性的范围称为变量的作用域。C语言中的变量,按作用域范围分为局部变量和全局变量。
局部变量也称为内部变量,局部变量是在函数内定义说明的,其作用域仅限于函数内,离开该函数后再使用这种变量是非法的。
全局变量也称为外部变量,它是在函数外部定义的变量,不属于哪个函数,属于一个源程序文件,作用域是整个源文件。


2、用static修饰变量后,变量有什么变化?
用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。
用static修饰全局变量后,全局变量可以在本源文件中被访问,也可以在同一个工程的其他源文件中被访问(只需用extern进行声明即可)


3、定义与声明的区别在于?
定义就是(编辑器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字我们经常所说的变量名或对象名。一个变量或对象在一定的区域内(如函数内、全局等)只能被定义一次。
声明 一是告诉编译器,这个名字已经匹配到相应的一块内存上了,声明可以出现多次。二是告诉编译器,这个变量名或对象名已经被预定,别的地方再也不能用它来作为变量名或对象名。


4、使用extern函数时应注意什么?
外部变量是在函数的外部定义的,它的作用域从变量定义处开始,到本程序文件的结尾,如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件终。在写程序时,如果使用extern函数,一定要注意外部函数的参数类型,参数个数和返回值类型,最好保持一致。


5、typedef与#define的使用区别?
通常讲,typedef要比#define要好,特别是在有指针的场合。根本原因在于#define只是简单的字符串替换而typedef则是为一个类型起新名字。在许多C语言规范中提到使用#define定义时,如果定义中包含表达式,必须使用括号。


6、运算符的优先级如何简单概括?
!>算术运算符>关系运算符>&&>||>条件运算符>赋值运算符>逗号运算符


7、||和&&运算符区别在于?
||:两个表达式只要有一个真,整个表达式的值就为真。
    两个表达式只要有一个假,整个表达式的值就为假。
&&:两个表达式的值都为真,整个表达式的值才为真。


8、三目运算符是如何表现的?
表达式1? 表达式2:表达式3
如果表达式1的值为真,表达式2的值为整个表达式的值。
如果表达式1的值为假,表达式3的值为整个表达式的值。


9、使用条件表达式应注意什么?
条件运算符的运算优先级低于关系运算符和算数运算符,但高于赋值运算符;
条件运算符“?”和“:”是一对运算符,不能分开单独使用;
条件运算符的结合方向是自右向左。


10、++ 和 -- 作为前缀和后缀有什么区别?
其作为前缀是先自加或者自减,然后在做别的运算。
其作为后缀是在本计算单位结束之后再自加或自减。


 


 


 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值