由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问一个 char * 和 char [] 的问题
相关主题
谁给解释一下这个c question请问const myClass &src 和myClass const &src有什么区别?
C++ Q05: pointer to constant variable请教一个const pointer的问题
array和pointer在作为函数返回时有啥区别 (C)问一道brainbench上的问题
what's wrong with this C++ code?C++ Function Pointer Array 的问题
C++一个string的小问题数组指针的问题
Array in Cconst char *p, is it ok to change p[1] ?
why int** cannot convert to const int** ?最新某公司onsite面试题 (转载)
a simple C++ questionc++ 弱问题:static const char* const 这两个const 分别是什么意思?
相关话题的讨论汇总
话题: char话题: abc话题: array话题: pointer话题: reverse
进入Programming版参与讨论
1 (共1页)
e******o
发帖数: 757
1
刚刚写了一个小code
char *a = "abc";
char b[] = "abc";
reverse(a, a+3);
reverse(b, b+3);
第一个reverse报错了,第二个没有,是不是char *a ="abc" 得到的是pointer to
constant, 而char b[] = "abc" 得到的是一个regular 的pointer?
如果是的话,能不能这样解释,char *a="abc" 是不是先生成一个临时的const char *
temp = "abc", 然后a == temp. 而 char b[] = "abc" 是建立一个名字为 b 的array.
d****i
发帖数: 4809
2
string literal in C is treated as const char* type, thus nonmodifiable

*
array.

【在 e******o 的大作中提到】
: 刚刚写了一个小code
: char *a = "abc";
: char b[] = "abc";
: reverse(a, a+3);
: reverse(b, b+3);
: 第一个reverse报错了,第二个没有,是不是char *a ="abc" 得到的是pointer to
: constant, 而char b[] = "abc" 得到的是一个regular 的pointer?
: 如果是的话,能不能这样解释,char *a="abc" 是不是先生成一个临时的const char *
: temp = "abc", 然后a == temp. 而 char b[] = "abc" 是建立一个名字为 b 的array.

h***o
发帖数: 30
3
In C, a string literal should be of type 'char[SOME_CONST]'
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
Page 144

【在 d****i 的大作中提到】
: string literal in C is treated as const char* type, thus nonmodifiable
:
: *
: array.

B*********r
发帖数: 62
4
Make it clear that you are intializing a and b, not assigning. So in the
first line, a pointer is initialized to the head of a string literal, and in
the second line an array is allocated and intialized.

*
array.

【在 e******o 的大作中提到】
: 刚刚写了一个小code
: char *a = "abc";
: char b[] = "abc";
: reverse(a, a+3);
: reverse(b, b+3);
: 第一个reverse报错了,第二个没有,是不是char *a ="abc" 得到的是pointer to
: constant, 而char b[] = "abc" 得到的是一个regular 的pointer?
: 如果是的话,能不能这样解释,char *a="abc" 是不是先生成一个临时的const char *
: temp = "abc", 然后a == temp. 而 char b[] = "abc" 是建立一个名字为 b 的array.

s********k
发帖数: 6180
5
这个归于本版10大话题,应该置顶了

*
array.

【在 e******o 的大作中提到】
: 刚刚写了一个小code
: char *a = "abc";
: char b[] = "abc";
: reverse(a, a+3);
: reverse(b, b+3);
: 第一个reverse报错了,第二个没有,是不是char *a ="abc" 得到的是pointer to
: constant, 而char b[] = "abc" 得到的是一个regular 的pointer?
: 如果是的话,能不能这样解释,char *a="abc" 是不是先生成一个临时的const char *
: temp = "abc", 然后a == temp. 而 char b[] = "abc" 是建立一个名字为 b 的array.

b*******s
发帖数: 5216
6
第一个指向常量区,第二个复制分配了一个4个char长度的串

*
array.

【在 e******o 的大作中提到】
: 刚刚写了一个小code
: char *a = "abc";
: char b[] = "abc";
: reverse(a, a+3);
: reverse(b, b+3);
: 第一个reverse报错了,第二个没有,是不是char *a ="abc" 得到的是pointer to
: constant, 而char b[] = "abc" 得到的是一个regular 的pointer?
: 如果是的话,能不能这样解释,char *a="abc" 是不是先生成一个临时的const char *
: temp = "abc", 然后a == temp. 而 char b[] = "abc" 是建立一个名字为 b 的array.

e******o
发帖数: 757
7
got it. thank you all very much.
1 (共1页)
进入Programming版参与讨论
相关主题
c++ 弱问题:static const char* const 这两个const 分别是什么意思?C++一个string的小问题
A question about cost char*Array in C
问个指针array 的简单问题why int** cannot convert to const int** ?
C 语言,初学者问题(4),读取字符指针内容a simple C++ question
谁给解释一下这个c question请问const myClass &src 和myClass const &src有什么区别?
C++ Q05: pointer to constant variable请教一个const pointer的问题
array和pointer在作为函数返回时有啥区别 (C)问一道brainbench上的问题
what's wrong with this C++ code?C++ Function Pointer Array 的问题
相关话题的讨论汇总
话题: char话题: abc话题: array话题: pointer话题: reverse