c – 需要帮助更改char中的单个字符*
发布时间:2020-12-16 10:29:28 所属栏目:百科 来源:网络整理
导读:我正在回到c并掌握指针和诸如此类的东西,但是,我希望我能得到一些帮助来理解为什么这段代码会给出总线错误. char * str1 = "Hello World";*str1 = '5'; 错误:总线错误:( 更一般地说,我想知道如何更改cstring中单个字符的值.因为我的理解是* str =’5’应该
我正在回到c并掌握指针和诸如此类的东西,但是,我希望我能得到一些帮助来理解为什么这段代码会给出总线错误.
char * str1 = "Hello World"; *str1 = '5'; 错误:总线错误:( 更一般地说,我想知道如何更改cstring中单个字符的值.因为我的理解是* str =’5’应该将str指向的值从’H’更改为’5′.因此,如果我打印出str,它会写着:“5ello World”. 为了理解我也编写了这段代码片段,它按预期工作; char test2[] = "Hello World"; char *testpa2 = &test2[0]; *testpa2 = '5'; 这给出了所需的输出.那么testpa2和str1之间的区别是什么?难道他们都没有指向一系列以null结尾的字符的开头? 解决方法
当你说char * str =“Hello World”时;你正在指向一个不可更改的文字字符串.应该要求将文字分配给const char *,但由于历史原因,情况并非如此(oops).
当你说char str [] =“Hello World;”你正在创建一个数组,该数组被初始化为(并由大小)编译时已知的字符串.这是可以修改的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容