cout流里面有一个循环就是输出str指向的字符串,其中把str赋给了temp指针,作为移位用,从而一个个输出出来。而*str是一个字符了就是I ,*是解引用 就是读出str指向的字符 ,所以*str就是I了 这个是不能赋值和移位的 所以输出不出来。
因为&a[i]是个char* ,而重载的<<操作符对于char*的操作就是输出从这个地址单元开始一直往后的内容,直到遇到0为止 你要想输出地址,那就把&a[i]转换成其他类型的地址就可以了 比如cout<<(int*)&a[i];
当你抱怨不报错的时候请确认你是否打开了所有的警告。如果你有钱购买 vs2010 的话可以电话微软寻求技术...
getline是当你要输入text,有空格时用,像hello world,如果使用cout,就只会输出hello而已,因此getline解决这个问题
这个是 C99 标准中的一个内容,单引号里面如果包含了不止一个字符,会被当成 multi-character character...