1.变量名和变量值的联系?
答:变量名是在变量声明时,该名字就和内存中一块地址绑定在一起了。变量的值是变量所对应的内存区域内存放的二进制序列。变量在内存中存放和它的值没有关系,而是和它的类型相关。
2.强制类型转换为什么能够成立?
答:变量的值不会因为变量的类型发生了改变而改变,当变量被转换为对应类型时,内存区域的二进制序列以该类型的形式翻译出来。
3.*p和&p有什么区别?
答:*p是通过*去访问一个地址的数据,而&p是取出变量p的地址。
4.局部变量和全局变量的区别?
答:局部变量也称为内部变量,局部变量是在函数内作定义说明的,其作用域仅限于函数内,离开该函数后再使用这种变量是非法的。全局变量也称为外部变量,它是在函数外部定义的变量,它不属于哪一个函数,它属于一个源程序文件,其作用域是整个源程序。
5.局部变量的一些注意点
(1)主函数中定义的变量也只能在主函数中使用,不能在其他函数中使用。同时,主函数中也不能使用其他函数中定义的变量。因为主函数也是一个函数,它与其他函数是平行关系。
(2)形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
(3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。
(4)在复合语句中也可以定义变量,其作用域只在复合语句范围。
6.const的作用:
一个变量前面用const修饰,就说明该变量里的数据可以被访问,但不可以被修改。
7.使用条件表达式的注意点:
(1)条件表达式的运算优先级低于关系运算符和算术运算符,但高于赋值符。
(2)条件运算符“?”和“:”是一对运算符,不能分开单独使用。
(3)条件运算符的结合方向是自右向左。
8.左移和右移运算符的作用:
左移运算符是把“<<”左边的运算数的各二进制位全部左移若干位,"<<"右边的数指定移动的位数,高位丢弃,低位补0.
右移运算符与之相反。
9.++作为前缀和后缀的区别?
作为前缀时在执行表达式之前加上1,作为后缀时在执行完表达式后加上1.
10.使用位操作的作用:
可以减少除法和取模的运算。