类似的问题还可以有:
说说你对协议(delegate)的理解?
说说你对内存管理的理解?
感觉答起来特费劲...
|  |      1vietor      2015-09-30 17:03:00 +08:00 via Android 对人生的理解 | 
|      2neoblackcap      2015-09-30 17:08:03 +08:00 就一内存地址 | 
|      3aprikyblue      2015-09-30 17:17:20 +08:00 简单理解的话当内存地址就好了。。。 | 
|  |      4LMkillme      2015-09-30 17:21:42 +08:00 这种问题还是很能体现出水平的,看回答,知深浅,比「 int 占几个字节」这种有固定答案的问题好多了。要问出应聘者的水平,这种问题最好了。 | 
|      5holulu      2015-09-30 17:29:05 +08:00 说说你对宏的理解 | 
|  |      6SeanChense      2015-09-30 17:29:51 +08:00 @LMkillme 那, int 占几个字节? | 
|      7holulu      2015-09-30 17:29:53 +08:00 自己去翻 Pointers on C | 
|      8Mirana      2015-09-30 17:30:14 +08:00 内存地址 数据类型 | 
|  |      9LMkillme      2015-09-30 17:30:23 +08:00 @SeanChense 自己谷歌去 | 
|      10guotie      2015-09-30 17:32:34 +08:00 指针即地址 | 
|  |      11Ixizi OP | 
|  |      12ChiangDi      2015-09-30 17:45:28 +08:00 指针不是地址吧,是保存地址的变量。 | 
|      13xiongxin8802      2015-09-30 17:45:31 +08:00 `int *p = &a` (假设 int a = 10) 嗯,指针 p 指向一个地址,在这个地址保存一个变量可以用*p 来表示,这个变量就是一堆 0101010 子类的,我们通过*p 来改变这串二进制的值就会影响到 a 的值。。。好复杂,说不清楚了 | 
|  |      14187j3x1      2015-09-30 17:49:34 +08:00 就记得是一种特殊变量 保存地址 | 
|  |      15iShao      2015-09-30 17:53:07 +08:00 via Android 谈谈你对异性恋的理解 | 
|  |      16zhujinliang      2015-09-30 17:55:41 +08:00  11 指针,就是别的世界线上的记忆, 每一条时间线上,栈上的数据随着 CPU 时钟不停地向前迭代,这是时间本来的样子 通过指针,可以修改过去时空的记忆,从而影响当前的世界线,这是穿越时空的第 12 种方式 是的,高效的算法,就是反复的时空跳跃,数十亿的 CPU 时钟跳动,不过是眨眼工夫的事 当世界线收束至那必然的结果时,你是否想过那孤独的观测者 | 
|  |      17Virtao      2015-09-30 17:56:19 +08:00 旧文一篇: 《 C 中指针的复杂用法及阅读技巧》 http://blog.virtao.org/articles/28.html 帮助你理解类似下面这样的指针: void (*(*(*virtao)[1])(int, void(*)(int)))(int) | 
|  |      18jiangzhuo      2015-09-30 18:02:01 +08:00 如果不知道面试官想听什么,我也不知道从哪开始说起。我就从头讲!!! “以前我们用 B 语言编程。。。。。。。” 之后省略几千字 我觉得这时候一般你说个五分钟才刚提到 C ,还有事忙的面试官就打断你了,然后给你个具体点的问题。 | 
|  |      21suikator      2015-09-30 18:20:36 +08:00 via Android @zhujinliang 666 | 
|      22chzyer      2015-09-30 18:20:42 +08:00 via iPhone @LMkillme 如果 64 位是 4 字节,那当逻辑内存地址位于 4G 以外的时候,怎么用 4 字节的内存空间表示? | 
|  |      23lu18887      2015-09-30 18:22:14 +08:00  1 | 
|      25hienchu      2015-09-30 18:30:05 +08:00 @ChiangDi 的确是,核心概念应该就两点,本身是变量,保存的是一个地址,指向某一内存区域。接下的深入探讨应该就看你对内存分配,数据类型等基础问题的理解了,说难不难,说简单也不简单。 | 
|  |      28ffffwh      2015-09-30 19:54:30 +08:00 底层:一个内存地址 高层:高阶类型 | 
|  |      29adadada      2015-09-30 20:10:46 +08:00 @LMkillme mpifort 支持 ILP64 。 Intel MPI Library 用的也是 ILP64 ,其中一个原因是为了支持大数组。 | 
|  |      30gimp      2015-09-30 21:49:19 +08:00 指针 = 本身是变量,记录着别的变量的地址 协议 ≈ 约定俗成 内存管理 94 字面意思的说... | 
|  |      31sparkrat      2015-09-30 21:59:59 +08:00 存储地址的变量. | 
|  |      32ryd994      2015-09-30 22:06:14 +08:00 应该友好地回应: RTFM Read The Friendly Manual | 
|      33test0x01      2015-09-30 23:16:15 +08:00 via Android 认真学过汇编的人表示,指针即地址的一种描述,是含目标类型说明的,是一种类型。既不等同于地址,也不等同于存地址的变量。 | 
|  |      34rcmerci      2015-09-30 23:19:33 +08:00 我觉得面试的时候让实现个 printf 不错。。 | 
|      35onemoo      2015-09-30 23:29:33 +08:00 告诉他:在我脑中都是汇编 | 
|  |      36Obelly      2015-10-01 01:00:14 +08:00 说了你也不懂…… | 
|  |      37chiu      2015-10-01 14:05:05 +08:00 开辟一块空间,存放地址类型的数据 | 
|  |      38totalfee      2015-10-01 21:58:12 +08:00 遇到这种问题,要把自己当成一个讲师:“ hello 同学们好,这节课给大家讲讲《 c 语言指针》...”,这样就可以说上一节课。 | 
|      39mintist      2015-10-02 09:46:12 +08:00 以下是个人对指针的理解: 首先,它是一个变量; 其次,它存的内存的地址; 再次,它本身附带内存地址的类型,好让你知晓类型的大小。 PS :站在汇编的角度看,经过汇编的过程之后,就是一个内存地址,但是其所指向的类型大小是经过汇编器翻译过的。 | 
|      40mintist      2015-10-02 10:16:40 +08:00 对协议的理解: 首先,协议就是不同单元通信的约定。 比如 A 与 B 很简单的一次通信: A <------> B A 和 B 约定一个协议 1 说:我这边传的字符数据,且传过去的每个字符只要- 1 就可以原字符,然后 B 将 A 传过来的字符数据按照字符分别放在缓冲区,然后再传入一个- 1 函数,最后就通过以上的“协议”完成了通信。 当然,真实的协议往往包括,起始,终止,校验,数据,长度等冗余信息来应对较复杂的情况。 然后,不同的协议有不同的使用场景,且越上层设计就越复杂,考虑的因素就越多,如速度,方便和重传机制等等。 比如用于 SoC 内部的 AMBA 总线,主要用于不同单元的互斥访问。 再比如用于一块 PCB 板子内通信 IIC 和 SPI ,主要用于主控单元与外围器件的通信,前者具有线少一主多从的优点,但是速度慢;后者占用线多,但是速度快。(应根据使用场景决定) 再比如用于不同主体之间通信的 USB , Ethernet 和 WiFi ,主要用于数据的传输,速度快;中着就可以组网;后者使用比较方便。 最后,他们多说 TCP/IP 协议是很复杂的, Learn something the Hard Way ,学会这个就会对其它协议的设计理解起来就相对比较容易。 | 
|      41mintist      2015-10-02 10:29:07 +08:00 对内存管理的理解,还是根据使用场景来对内存进行划分。 - 比如临时变量就放在栈里面,这段内存的属性:一般一些占用空间较小的变量和数据,用完就放 - 系统调用的 malloc 就放在堆里面,这段内存的属性:一般大段空间内存的使用,自己拥有申请和释放的权利 - 自己写一个内存管理器(我觉得楼主是指这个),这段内存的属性:你有如何设计如何申请和释放,当然也可以确定何时申请和释放 PS :至于虚拟内存管理和物理内存的映射,主要是为了让多进程看起来都只有一个相同的内存空间,多一层抽象,这个使用不多,不是太了解。 | 
|  |      42easing      2015-10-02 15:24:52 +08:00 via Android 就是有类型的地址 | 
|      44thxmem      2015-10-02 23:47:27 +08:00 (*(void(*) ())0)() 重学 C 语言中,看到这里,今晚不想看了。 | 
|  |      46wizardforcel      2015-10-03 16:51:24 +08:00 delegate 是啥。。是 c#里那个闭包么。。 |