读书人

关于 char ch[]和char *ch[] 求教解决

发布时间: 2012-06-14 16:00:31 作者: rapoo

关于 char ch[]和char *ch[] 求教
char word1[]="life is so cool";(这一句是不是每个字符都存在wodr1[i]中了?
cout<<word1<<endl;(为什么能输出word1整个数组内容呢,不是只有一个头指针吗,应该输出word1的指向的内存地址啊,怎么输出了life is so cool?)
char *word2[]={"life","is","so","cool"};(这一句理解不了,char *数组 怎么指向的是一个string对象?)
新手求教了 , 求高手解答下 谢谢

[解决办法]
1.char word[]="life is so cool";
这一句每个字符确实存进了word数组,并且系统自动计算其长度,给它分配了15个空间

2.书上有的,仔细看看书中介绍字符串和指针部分的内容。

3.char *word2[];
这个数组的每一个元素都是一个指针,指向后面每一个单词的首地址。实际上就是一个二维数组

建议楼主多看看书,把指针吃透、理清
俺也是个初学者,共同学习。
[解决办法]
建议你先去看一下字符串相关的内容
char word1[]="life is so cool";
这是一个字符串初始化赋值,相当于
word1[0]='l'
word1[1]='i'
.
.
.
word1[14]='l'
word1[15]='\0'

cout<<word1<<endl是字符串输出,输出从word1开始的字符直到遇到'\0'为止
char *word2[]是个字符指针数组,每一个元素指向一个字符串,

另外字符串不是对象
[解决办法]
字符串的出现有两种情况:

1、初始化字符数组,比如:char word[]="life is so cool";

2、其他的情况,此时表示"char *",比如:
char *word2[]={"life","is","so","cool"};
[解决办法]

C/C++ code
  1 #include <iostream>  2 #include <stdio.h>  3  4 using namespace std;  5  6 int main()  7 {  8     char word[] = "hello world!";  9 10     cout << word << endl; 11     cout << (void *)word << endl; 12     printf("The address of word is %x\n", &word[0]); 13 14     return 0; 15 }
[解决办法]
一个数组存指针,一个数组存字符,不一样。

读书人网 >C++

热点推荐