摘要:
下面5个函数哪个能够成功进行两个数的交换?[中国某互联网公司2009年12月笔试题] 解析:这道题考察函数参数传递、值传递、指针传递(地址传递)、引用传递。swap1传的是值的副本,在函数体内被修改了形参p、q(实际参数a、b的一个拷贝),p、q的值确实交换了,但是它们是局部变量,不会影响到主函数中 阅读全文
摘要:
答案:(1)非空区别。在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就 阅读全文
摘要:
解析:由以下几个例子我们说明sizeof和strlen之间的区别。第1个例子: sizeof(ss)结果为4,ss是指向字符串常量的字符指针。sizeof(*ss)结果为1,*ss是第一个字符。第2个例子: sizeof(ss)结果为11,ss是数组,计算到“\0”位置,因此是(10+1)。size 阅读全文
摘要:
数据对齐,是指数据所在的内存地址必须是该数据长度的整数倍。DWORD数据的内存起始地址能被4除尽,WORD数据的内存起始地址能被2除尽。x86 CPU能直接访问对齐的数据,当它试图访问一个未对齐的数据时,会在内部进行一系列的调整。这些调整对于程序来说是透明的,但是会降低运行速度,所以编译器在编译程序 阅读全文
摘要:
解析:ss1是一个字符指针,指针的大小是一个定值,就是4字节,所以sizeof(ss1)是4字节。ss2是一个字符数组,这个数组最初未定大小,由具体填充值来定。填充值是“0123456789”。1个字符所占空间是1字节,10个就是10字节,再加上隐含的“\0”,所以一共是11字节。ss3也是一个字符 阅读全文