1.为什么数组要从0开始编号?
数组的索引值是一个偏移量:它表示当前要引用的这个字符到数组中第一个字符之间有多少个字符。
2.为什么要这样做
计算机再存储器中以连续的字节进行存储,并用索引计算出字符在存储器的位置。要确定某个字符所在位置,只需要在首地址加上偏移量即可。
3.字符串字面值和字符数组的区别
字符串字面值是一个常量,一旦创建完毕就不能再修改它们。如果强行修改,gcc会显示总线错误。(个人理解,当字符串创建完毕后,该段地址空间被修改为只读,当进行修改时,打开总线进行写操作时被禁止,因此会显示总线错误。)
4.GCC编译器的工作原理
前端:将语言转化成一种中间语言,前端能够吧所有的语言生成同一种代码。
后端:将中间语言转化为多种平台的机器代码。根据操作系统的不同生成特定的可执行文件。
所以可以跨平台。
(意外发现:GCC编译器可以将 如果再循环外执行也正确的代码 编译器会把其编译的时候移到循环外边。)
5.&&和|| &和|
&&和||具有熔断机制,条件满足的时候可以跳过第二个条件,而&和|则总是执行两个条件。
&和|真正的用武之地在于对数值的位运算 (二进制的每一位的与或)。