由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一个基本的string问题
相关主题
专家们,find the longest common substring of two stringsC++ Q66: reverse a string -- is it efficient
回馈本版,贴GOOGLE电话面经求问一道算法题~
面试题目: 有2个字符串,消除第一个字符串中第二个字符串包含的所有字母。 例如: string1: helloworld string2: abcdef output: hlloworld 面1道brianbench 的题 c++
一周多了。。。等的太不淡定了。。。 说两个面经吧C++ 面试题
问到题请教c++的string vector问题,谢谢!
请问一个题目请教一个C++问题
一道string matching的题目攒人品之facebook电面面经
g电面贴一个OJ 的 longest valid parenthesis
相关话题的讨论汇总
话题: string1话题: char话题: string话题: str2话题: const
进入JobHunting版参与讨论
1 (共1页)
H*M
发帖数: 1268
1
const char* st = "string1";
char str2[] = "string2"
What is the diff.?
我说是st不能改变"string1", string1是string literal放在data segment str2就可以
改变,string2是放在stack
如果写成char* str = "string1"是不对的.可是MS Studio居然可以通过编译。谁帮我澄
清下我理解有误吗?谢了。
r**u
发帖数: 1567
2
写成const char* st = "string1" 跟写成 char* str = "string1" 是一样的

可以
我澄

【在 H*M 的大作中提到】
: const char* st = "string1";
: char str2[] = "string2"
: What is the diff.?
: 我说是st不能改变"string1", string1是string literal放在data segment str2就可以
: 改变,string2是放在stack
: 如果写成char* str = "string1"是不对的.可是MS Studio居然可以通过编译。谁帮我澄
: 清下我理解有误吗?谢了。

H*M
发帖数: 1268
3
不一样吧。本质应该写成const char* st

【在 r**u 的大作中提到】
: 写成const char* st = "string1" 跟写成 char* str = "string1" 是一样的
:
: 可以
: 我澄

r**u
发帖数: 1567
4
syntax不一样,但是效果一样。都是const char *str = “string1",这个效果。str
指向一个constant string。

【在 H*M 的大作中提到】
: 不一样吧。本质应该写成const char* st
g*******y
发帖数: 1930
5
char* str = "string1" 其实是一个合法但是特殊例外的语法,只适用于string
literal,这是为了要兼容过去C里的写法。

【在 r**u 的大作中提到】
: 写成const char* st = "string1" 跟写成 char* str = "string1" 是一样的
:
: 可以
: 我澄

c****p
发帖数: 32
6
大部分人只知道const char*指向的位置中的data不能改变,但是不知道char str2[]这
样到底是什么意思。
实际上,C有两种aggregation type,一种是struct,一种就是数组。
比如说,如果我们有
char s[] = {'s','t','r','i'};
那么s就是一个有4个character的buffer,实际上
char s[]={'a','b,'c',0};

char s[]="abc";
是等价的。
定义s的,不是后面那个"abc""string"(那只是operand而已),而是前面的
declaration,并不是说因为可以用指针指向数组,那么数组就可以是指针。
可以看看我copy的这一段:
http://www.codepp.com/default.aspx?g=posts&t=26

可以
我澄

【在 H*M 的大作中提到】
: const char* st = "string1";
: char str2[] = "string2"
: What is the diff.?
: 我说是st不能改变"string1", string1是string literal放在data segment str2就可以
: 改变,string2是放在stack
: 如果写成char* str = "string1"是不对的.可是MS Studio居然可以通过编译。谁帮我澄
: 清下我理解有误吗?谢了。

s******s
发帖数: 3694
7
最重要一点要描述的是 内存区域(空间)不一样, 一个是stack 一个是 static

可以
我澄

【在 H*M 的大作中提到】
: const char* st = "string1";
: char str2[] = "string2"
: What is the diff.?
: 我说是st不能改变"string1", string1是string literal放在data segment str2就可以
: 改变,string2是放在stack
: 如果写成char* str = "string1"是不对的.可是MS Studio居然可以通过编译。谁帮我澄
: 清下我理解有误吗?谢了。

m*******y
发帖数: 68
8
还有一个著名的指针和数组名的区别。

可以
我澄

【在 H*M 的大作中提到】
: const char* st = "string1";
: char str2[] = "string2"
: What is the diff.?
: 我说是st不能改变"string1", string1是string literal放在data segment str2就可以
: 改变,string2是放在stack
: 如果写成char* str = "string1"是不对的.可是MS Studio居然可以通过编译。谁帮我澄
: 清下我理解有误吗?谢了。

1 (共1页)
进入JobHunting版参与讨论
相关主题
贴一个OJ 的 longest valid parenthesis问到题
问个Zenefits电面题目,他家好难。。。请问一个题目
Amazon一道string matching的题目
给一个大俗之一的面经吧。g电面
专家们,find the longest common substring of two stringsC++ Q66: reverse a string -- is it efficient
回馈本版,贴GOOGLE电话面经求问一道算法题~
面试题目: 有2个字符串,消除第一个字符串中第二个字符串包含的所有字母。 例如: string1: helloworld string2: abcdef output: hlloworld 面1道brianbench 的题 c++
一周多了。。。等的太不淡定了。。。 说两个面经吧C++ 面试题
相关话题的讨论汇总
话题: string1话题: char话题: string话题: str2话题: const