c*****e 发帖数: 737 | 1 1,
int a[] = {1,2,3,4,5};
int *p2 = &a + 1;
printf("%d, %d", *(a+1), *(p - 1));
说出结果
2, const char* p;
char* const p;
char const* p;
解释
第三题太长了记不得
4, 如果你在linux下要编译一个项目,但磁盘已经满了,于是你mount了一个win的fs到
你home下,但有个问题,不能soft link,你如何build?
5,用C(不是C++)实现从/etc/resolve.conf下读取所有ip地址,返回char ** dns;
e.g.
mitbbs.com 74.125.78.121
mitbbs.ca 78.45.147.145
...
返回的就是所有ip地址的string array(所以是char **) |
d***o 发帖数: 181 | |
l*****a 发帖数: 14598 | 3 *(p2-1)?
=5?
【在 d***o 的大作中提到】 : 第一个是2,5
|
c*****e 发帖数: 737 | 4 回来gcc编了一下,
test.C:6: error: cannot convert ‘int (*)[5]’ to ‘int*’ in initialization
被耍了 |
w********0 发帖数: 377 | 5 可以编译吗?
【在 c*****e 的大作中提到】 : 1, : int a[] = {1,2,3,4,5}; : int *p2 = &a + 1; : printf("%d, %d", *(a+1), *(p - 1)); : 说出结果 : 2, const char* p; : char* const p; : char const* p; : 解释 : 第三题太长了记不得
|
p*i 发帖数: 411 | 6 我这是warning
输出5
initialization
【在 c*****e 的大作中提到】 : 回来gcc编了一下, : test.C:6: error: cannot convert ‘int (*)[5]’ to ‘int*’ in initialization : 被耍了
|
c*****e 发帖数: 737 | 7 用啥编译的?为啥输出是5?
【在 p*i 的大作中提到】 : 我这是warning : 输出5 : : initialization
|
p*i 发帖数: 411 | 8 用C编译器,别用c++编译器
$ gcc test.c
int a[] = {1, 2, 3, 4, 5};
&a的类型是int (*)[5]
可以把a想象成一个二维数组的第一维,每个维度有5个数
所以&a + 1指向第二维的第一个(其实不存在),也就是one item past the last one
,就跟vector::end()一样
p = &a+1;
p-1就是指向a的最后一个元素
【在 c*****e 的大作中提到】 : 用啥编译的?为啥输出是5?
|
c*****e 发帖数: 737 | 9 还有如下题目,解释下面的定义:
int *p[n];
int (*p)[n];
int *p();
int (*p)(); |
p*i 发帖数: 411 | 10
array of pointers
pointer to array
function that returns a pointer to integer
function pointer
【在 c*****e 的大作中提到】 : 还有如下题目,解释下面的定义: : int *p[n]; : int (*p)[n]; : int *p(); : int (*p)();
|
|
|
r*******n 发帖数: 266 | 11 这就是面试为什么应该坚持python的原因啊
【在 p*i 的大作中提到】 : : array of pointers : pointer to array : function that returns a pointer to integer : function pointer
|
p*i 发帖数: 411 | 12 C/C++工作机会不多,鸭梨很大……我这一路学,还有n多不会的……
确实用python简洁多了
【在 r*******n 的大作中提到】 : 这就是面试为什么应该坚持python的原因啊
|
r*******n 发帖数: 266 | 13 don't get me started with meta-programming...template....partial
specialization.....
【在 p*i 的大作中提到】 : C/C++工作机会不多,鸭梨很大……我这一路学,还有n多不会的…… : 确实用python简洁多了
|
q**p 发帖数: 147 | 14 ai,感觉每次面试都发现一些不会的东西,回来再补,下次还有不会的
【在 r*******n 的大作中提到】 : don't get me started with meta-programming...template....partial : specialization.....
|
p*i 发帖数: 411 | 15 对……别提了……
说实话,这些东西有点恶心……我想工作以后逐步脱离C/C++,多学点现代的东西
【在 r*******n 的大作中提到】 : don't get me started with meta-programming...template....partial : specialization.....
|
p*i 发帖数: 411 | 16 请问lz,前面的第四题怎么做?我没有什么经验在这方面
我觉得最好就是move一些数据到mounted windows partition……
【在 c*****e 的大作中提到】 : 还有如下题目,解释下面的定义: : int *p[n]; : int (*p)[n]; : int *p(); : int (*p)();
|
d*a 发帖数: 1863 | 17 我一直不明白C发明指针这个东西干啥,弄得难理解
除了可以操作内存,还有啥好处? |
z*****n 发帖数: 447 | 18 const char* p;
p is a regular pointer pointing to a const char. You cannot change the
content (*p), but can change p to point another const char.
char* const p;
char const* p;
These two are identical. p is a const pointer pointing to char. You can
change (*p), but you cannot change p to point to another char. |
i***h 发帖数: 12655 | 19 不能操作内存的语言...能干啥?
别忘了c最早是为了写Unix搞出来的
【在 d*a 的大作中提到】 : 我一直不明白C发明指针这个东西干啥,弄得难理解 : 除了可以操作内存,还有啥好处?
|
r*******n 发帖数: 266 | 20 啥语言只要turing complete就都啥都能干啊
【在 i***h 的大作中提到】 : 不能操作内存的语言...能干啥? : 别忘了c最早是为了写Unix搞出来的
|
|
|
p*i 发帖数: 411 | 21 说实在的,C/C++中,指针不是最难理解的。虽然复杂,但是有章可循。
很多其它的东西,实在是难以理解。
那个C++ FAQ lite里面有深入的讨论
【在 d*a 的大作中提到】 : 我一直不明白C发明指针这个东西干啥,弄得难理解 : 除了可以操作内存,还有啥好处?
|
d********t 发帖数: 9628 | 22 第四题怎么做?
【在 c*****e 的大作中提到】 : 1, : int a[] = {1,2,3,4,5}; : int *p2 = &a + 1; : printf("%d, %d", *(a+1), *(p - 1)); : 说出结果 : 2, const char* p; : char* const p; : char const* p; : 解释 : 第三题太长了记不得
|
p*i 发帖数: 411 | 23 。。。我上面也问了。。。
【在 d********t 的大作中提到】 : 第四题怎么做?
|
r*******n 发帖数: 266 | 24 读到空格 扔掉
剩下的当IP地址处理
【在 d********t 的大作中提到】 : 第四题怎么做?
|
p*i 发帖数: 411 | 25 这是第五题……
我们问第四题的……
【在 r*******n 的大作中提到】 : 读到空格 扔掉 : 剩下的当IP地址处理
|
r*******n 发帖数: 266 | 26 er...没听说过linux
【在 p*i 的大作中提到】 : 这是第五题…… : 我们问第四题的……
|
p*i 发帖数: 411 | 27 多谢……
我只能想出来,把linux上的一部分数据先move到mounted win partition上,这样清理
出一些空间……再编译……
【在 r*******n 的大作中提到】 : er...没听说过linux
|
d********t 发帖数: 9628 | 28 我说的是mount那题
【在 r*******n 的大作中提到】 : 读到空格 扔掉 : 剩下的当IP地址处理
|
r****t 发帖数: 10904 | 29 fuse 吧,没干过,不知道行不行。
话说现在 ntfs-3g 可以 symlink 的了,也是用的 fuse.
可以到 linux 版问问。
【在 d********t 的大作中提到】 : 第四题怎么做?
|
x******a 发帖数: 6336 | 30 isn't that const char * and char const * are the same?
【在 z*****n 的大作中提到】 : const char* p; : p is a regular pointer pointing to a const char. You cannot change the : content (*p), but can change p to point another const char. : char* const p; : char const* p; : These two are identical. p is a const pointer pointing to char. You can : change (*p), but you cannot change p to point to another char.
|
|
|
c*****e 发帖数: 737 | 31 第四题最后我问了,说用loop device。 |