|
1鱼币
小甲鱼老师有一段C++的视频,代码如下:- #include <iostream>
- int main()
- {
- const unsigned short ITEMS = 5;
-
- int intArray[ITEMS] = {1, 2, 3, 4, 5};
- char charArray[ITEMS] = {'F', 'i', 's', 'h', 'C'};
-
- int *intPtr = intArray;
- char *charPtr = charArray;
-
- std::cout << "整型数组输出: " << '\n';
- for( int i=0; i < ITEMS; i++ )
- {
- std::cout << *intPtr << " at " << intPtr << '\n';
- intPtr++;
- }
-
- std::cout << "字符型数组输出: " << '\n';
- for( int i=0; i < ITEMS; i++ )
- {
- std::cout << *charPtr << " at " << charPtr << '\n';
- charPtr++;
- }
- return 0;
- }
复制代码
这里我有些晕了。charptr是指向字符数组的指针啊?这个指针指向的是字符数组的首地址,即charArray[0]的地址。那std::cout << *charPtr << " at " << charPtr << '\n';这个语句打出来的应该是charArray[0]的地址啊?为什么打出来的是FishC,变成整个数组了呢? 为什么上面整型数组打印的就不是整个数组12345,而是首地址呢?
因为字符串数组比较特殊,想想你要输出一个字符串,是不是可以直接这样
s = "good day"
cout<<s<<endl;
这里s其实也是字符串数组的地址,但是你用cout进行输出的时候,会自动输出里面的字符,直到遇到'\0'
|
最佳答案
查看完整内容
因为字符串数组比较特殊,想想你要输出一个字符串,是不是可以直接这样
s = "good day"
cout
|