指针常量字符串问题
VOID StringInitTest(){
//(1)用RtlInitAnsiString初始化字符串
{
ANSI_STRINGAnsiString1;
CHAR * string1 = "hello";
//初始化ANSI_STRING字符串
RtlInitAnsiString(&AnsiString1, string1);
DbgPrint("AnsiString1:%Z\n", &AnsiString1);//打印hello
string1 = "H";
string1 = "E";
string1 = "L";
string1 = "L";
string1 = "O";
//改变string1,AnsiString1同样会导致变化
DbgPrint("AnsiString1:%Z\n", &AnsiString1);//打印HELLO
}
第一个DbgPrint可以打印小写hello,第二个DbgPrint打印还是小写hello,但不能打印大写HELLO;
CHAR * string1 = "hello";中的"hello"是常量字符串,常量字符串是不能修改的。我这样说对不对呢? 说得对。
此外以后不要指定某个用户回答问题。 好的,我明白了,谢谢您的回答。我又有信心了。
页:
[1]