由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 四道C++面试题
相关主题
一个面试题目,用C实现Google Java coding standard (转载)
a simple C++ questionAn algorithm question.
抱怨下G的code review process算法问题,高手有请
A question about c++ pointercost time of shift operation?
[合集] another question for C++ constant一个简单的小问题
再请教一个c++的简单问题(enumerated constant)[合集] const 变量问题
请教C++里面这个表达ambiguous operators in c++
问一个defining array 的问题请大虾们解释一下:" const int * " 和 “ int * const " 的区别是什么?
相关话题的讨论汇总
话题: char话题: c++话题: interview话题: questions话题: when
进入Programming版参与讨论
1 (共1页)
E*****7
发帖数: 128
1
Four C++ interview questions (1), (2), (3) and (4) below:
char p[ ] = "C++ Interview Questions";
p[0] = "D"; // OK
char* p = "Shit C++ Interview Questions";
p[0] = "C"; // Error:(1) Why?
(2) What are the differences between char p[ ] and char* p? (3) When must
char p[ ] be used? (4) When must char* p be used?
T*****9
发帖数: 2484
2

p指向的字符串是常量

【在 E*****7 的大作中提到】
: Four C++ interview questions (1), (2), (3) and (4) below:
: char p[ ] = "C++ Interview Questions";
: p[0] = "D"; // OK
: char* p = "Shit C++ Interview Questions";
: p[0] = "C"; // Error:(1) Why?
: (2) What are the differences between char p[ ] and char* p? (3) When must
: char p[ ] be used? (4) When must char* p be used?

c**a
发帖数: 316
3
co-ask.

【在 E*****7 的大作中提到】
: Four C++ interview questions (1), (2), (3) and (4) below:
: char p[ ] = "C++ Interview Questions";
: p[0] = "D"; // OK
: char* p = "Shit C++ Interview Questions";
: p[0] = "C"; // Error:(1) Why?
: (2) What are the differences between char p[ ] and char* p? (3) When must
: char p[ ] be used? (4) When must char* p be used?

c**a
发帖数: 316
4
p-> data segment,
char a[] -> stack.
我理解是。
data segment 有常量区间不能改。。。

【在 T*****9 的大作中提到】
:
: p指向的字符串是常量

T*****9
发帖数: 2484
5
C++有只读字符串池的
char *a = "hello";
char *b = "hello";
a和b指向的是同一个字符串,对于char *来说,对于C是合理的,对于C++,已经是被标
准认为不该存在当前的C++程序里面了,只是为了保证和C的兼容才有的,应该用的是
const char*,对于char *的修改是未定义行为
char a[]只是一个数组,

【在 c**a 的大作中提到】
: p-> data segment,
: char a[] -> stack.
: 我理解是。
: data segment 有常量区间不能改。。。

E*****7
发帖数: 128
6
char *a = "hello";
char *b = "hello";
or
const char *a = "hello";
const char *b = "hello";
a和b指向的是同一个字符串: Not 100% true
if (a == b) // not 100% holds (true)
do sth.
The test result is implementation-defined. The address holding the above four
"hello" strings may or may not be identical.

【在 T*****9 的大作中提到】
: C++有只读字符串池的
: char *a = "hello";
: char *b = "hello";
: a和b指向的是同一个字符串,对于char *来说,对于C是合理的,对于C++,已经是被标
: 准认为不该存在当前的C++程序里面了,只是为了保证和C的兼容才有的,应该用的是
: const char*,对于char *的修改是未定义行为
: char a[]只是一个数组,

T*****9
发帖数: 2484
7
我的意思是有只读字符串池,相同的可能性比较大
C++和C都没有承认a == b来判断不是一个很stupid的事情

four

【在 E*****7 的大作中提到】
: char *a = "hello";
: char *b = "hello";
: or
: const char *a = "hello";
: const char *b = "hello";
: a和b指向的是同一个字符串: Not 100% true
: if (a == b) // not 100% holds (true)
: do sth.
: The test result is implementation-defined. The address holding the above four
: "hello" strings may or may not be identical.

w***g
发帖数: 5958
8

这个其实是定义数组的偷懒的做法,长度为字符串长度,数组被初始化为字符串。之后
数组想怎么改都行。
我一般不这么写程序。特别是C++,应该用string("C++ Interview Questions")。

【在 E*****7 的大作中提到】
: Four C++ interview questions (1), (2), (3) and (4) below:
: char p[ ] = "C++ Interview Questions";
: p[0] = "D"; // OK
: char* p = "Shit C++ Interview Questions";
: p[0] = "C"; // Error:(1) Why?
: (2) What are the differences between char p[ ] and char* p? (3) When must
: char p[ ] be used? (4) When must char* p be used?

t****t
发帖数: 6806
9
这跟C++有什么关系, 这是C的内容
http://c-faq.com/decl/strlitinit.html
c********t
发帖数: 27
10
p[0] = "C"; // is string, will pad a \0 at end
//then
p[0] = 'C'; // is okay
相关主题
再请教一个c++的简单问题(enumerated constant)Google Java coding standard (转载)
请教C++里面这个表达An algorithm question.
问一个defining array 的问题算法问题,高手有请
进入Programming版参与讨论
E*V
发帖数: 17544
11
I think for C language,
it is OK
for C++, it is not ba?

【在 c********t 的大作中提到】
: p[0] = "C"; // is string, will pad a \0 at end
: //then
: p[0] = 'C'; // is okay

z***e
发帖数: 5393
12
实际上, char[]/int[]/etc.算是一种struct,char a[]="aadfasdfas",相当于调用了
ctor()----虽然C里面没这个概念,但是实现却是一样的。
C一共有两种aggregation type,一种是struct,另一种就是[].
欧年初在vmware interview的时候就死在这个上面了。
t****t
发帖数: 6806
13
C FAQ没看全就面试C?
怎么好意思说啊.

【在 z***e 的大作中提到】
: 实际上, char[]/int[]/etc.算是一种struct,char a[]="aadfasdfas",相当于调用了
: ctor()----虽然C里面没这个概念,但是实现却是一样的。
: C一共有两种aggregation type,一种是struct,另一种就是[].
: 欧年初在vmware interview的时候就死在这个上面了。

T*****9
发帖数: 2484
14
vmware 。。。大牛啊!

【在 z***e 的大作中提到】
: 实际上, char[]/int[]/etc.算是一种struct,char a[]="aadfasdfas",相当于调用了
: ctor()----虽然C里面没这个概念,但是实现却是一样的。
: C一共有两种aggregation type,一种是struct,另一种就是[].
: 欧年初在vmware interview的时候就死在这个上面了。

T*****9
发帖数: 2484
15
C好难啊。。。
每次写C我就他妈的想杀人

用了

【在 t****t 的大作中提到】
: C FAQ没看全就面试C?
: 怎么好意思说啊.

t****t
发帖数: 6806
16
我怎么觉得最简单的就是C了, 多straight forward啊
一堆函数互相调用而已

【在 T*****9 的大作中提到】
: C好难啊。。。
: 每次写C我就他妈的想杀人
:
: 用了

k****f
发帖数: 3794
17
nodnod
看c++那么多构造析构的破规矩
真是麻烦的很。

【在 t****t 的大作中提到】
: 我怎么觉得最简单的就是C了, 多straight forward啊
: 一堆函数互相调用而已

T*****9
发帖数: 2484
18
指针。。。

【在 t****t 的大作中提到】
: 我怎么觉得最简单的就是C了, 多straight forward啊
: 一堆函数互相调用而已

a**********s
发帖数: 588
19
看见这种题目就很生气, 在实践中根本不会用到...
t****t
发帖数: 6806
20
在C FAQ里出现过的东西, 你怎么敢说实践中根本不会用到, 明显是经常被用到

【在 a**********s 的大作中提到】
: 看见这种题目就很生气, 在实践中根本不会用到...
相关主题
cost time of shift operation?ambiguous operators in c++
一个简单的小问题请大虾们解释一下:" const int * " 和 “ int * const " 的区别是什么?
[合集] const 变量问题另一个Fortran 问题
进入Programming版参与讨论
l*****d
发帖数: 359
21
char* p = "Shit C++ Interview Questions";
p is pointing to string constants, and the result is un-defined if you try
to modify the string contents. (from c programing language by K&R)

【在 E*****7 的大作中提到】
: Four C++ interview questions (1), (2), (3) and (4) below:
: char p[ ] = "C++ Interview Questions";
: p[0] = "D"; // OK
: char* p = "Shit C++ Interview Questions";
: p[0] = "C"; // Error:(1) Why?
: (2) What are the differences between char p[ ] and char* p? (3) When must
: char p[ ] be used? (4) When must char* p be used?

a**********s
发帖数: 588
22
C FAQ怎么就是bible了,出现过的东西就经常被用到吗?从来不觉得什么时候非得用
char* str = "blah blahh..."之类的东西,而且在前面不加上const就不是好习惯。

【在 t****t 的大作中提到】
: 在C FAQ里出现过的东西, 你怎么敢说实践中根本不会用到, 明显是经常被用到
s****n
发帖数: 786
23
这是比较基初的知识,Google一下水滴石穿系列对这个讲的比较全,其实地址类型数据
应该显式定义,我嚼得应该这样子
addr32 p1,p2;
初学者就不会迷糊,回到你的问题,array和pointer的区别很简单了

【在 E*****7 的大作中提到】
: Four C++ interview questions (1), (2), (3) and (4) below:
: char p[ ] = "C++ Interview Questions";
: p[0] = "D"; // OK
: char* p = "Shit C++ Interview Questions";
: p[0] = "C"; // Error:(1) Why?
: (2) What are the differences between char p[ ] and char* p? (3) When must
: char p[ ] be used? (4) When must char* p be used?

v****s
发帖数: 1112
24
hou guo hen yanzhong.

【在 a**********s 的大作中提到】
: 看见这种题目就很生气, 在实践中根本不会用到...
z***e
发帖数: 5393
25
老大教训得是。
当时对方第7个(最后一个)比较白的印度少女写出 char a[]="adfsadfsaf";a[1]='c'
;我就激动地说会exception啦;然后对方轻蔑地说你在跟老子胡说什么?偶便满头大汗
晕菜了...

【在 t****t 的大作中提到】
: C FAQ没看全就面试C?
: 怎么好意思说啊.

l*****d
发帖数: 359
26
haha

c'

【在 z***e 的大作中提到】
: 老大教训得是。
: 当时对方第7个(最后一个)比较白的印度少女写出 char a[]="adfsadfsaf";a[1]='c'
: ;我就激动地说会exception啦;然后对方轻蔑地说你在跟老子胡说什么?偶便满头大汗
: 晕菜了...

1 (共1页)
进入Programming版参与讨论
相关主题
请大虾们解释一下:" const int * " 和 “ int * const " 的区别是什么?[合集] another question for C++ constant
另一个Fortran 问题再请教一个c++的简单问题(enumerated constant)
Any better way to declare a function?请教C++里面这个表达
请教cosnt的使用问一个defining array 的问题
一个面试题目,用C实现Google Java coding standard (转载)
a simple C++ questionAn algorithm question.
抱怨下G的code review process算法问题,高手有请
A question about c++ pointercost time of shift operation?
相关话题的讨论汇总
话题: char话题: c++话题: interview话题: questions话题: when