ckernel 发表于 2017-12-28 15:58:43

指针常量字符串问题

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"是常量字符串,常量字符串是不能修改的。我这样说对不对呢?

Tesla.Angela 发表于 2018-1-2 08:53:19

说得对。
此外以后不要指定某个用户回答问题。

ckernel 发表于 2018-1-3 21:52:02

好的,我明白了,谢谢您的回答。我又有信心了。
页: [1]
查看完整版本: 指针常量字符串问题