用一个初始值设定项初始化所有数组元素的方式的问题?
请问一下:Visual C++2010 C++\CLI平台
array<wchar_t>^ indicators(gcnew array<wchar_t>(sentence -> Length){L'*'});
① 这个数组中的 {L'*'} 代表什么意思?
谢谢。
{L'*'} 这个整体,比如说初始化数组元素,是初始化该数组的所有元素还是只初始化第一个元素
我逐步调试过,好像只初始化第一个元素。
② 而且这个{L'*'}好像可有可无,删了,程序也照样运行,请问这个有什么作用、意义?
完整程序如下:
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
array<wchar_t>^ punctuation = {L'\"', L'\'', L',', L'.', L'?', L'!', L':', L';'};
String^ sentence(L"\"It\'s chilly.\" the boy\'s mother said coldly.");
array<wchar_t>^ indicators(gcnew array<wchar_t>(sentence -> Length){L'*'});
int index(0);
int count(0);
while((index = sentence -> IndexOfAny(punctuation, index)) >= 0)
{
indicators[index] = L'^';
++index;
++count;
}
Console::WriteLine(L"The sentence contains {0} punctuations.", count);
Console::WriteLine(L"{0}\n{1}", sentence, gcnew String (indicators));
return 0;
}
测试结果,只显示一个“*”,如果是初始化数组所有元素,不是有好多“******”?
书上的原文是这样的:
注意在数组说明后面的大括号中用一个初始值设定项初始化所有数组元素的方式。
┈┈┈┈┈┈┈┈《Visual C++ 2010入门经典(第5版)》Ivor Horton 著 苏正泉 李文娟 译 P203
书上怎么说是初始化所有数组元素。
实际上我自己测过,也只是初始化第一个数组元素。
请问,这是什么原因?是书上翻译错了吗?
谢谢。
[ 本帖最后由 fgfdfg 于 2011-8-19 21:40 编辑 ]