我是C的开端,所以请忍受我; 我知道我可以做一个数组声明*c
或c[]
;关于Memset的简单问题C
我的问题是关于memset的:
char str[] = "hello!";
memset (str,'-',2);
puts (str);
工作正常。 但是:
char *str = "hello!";
memset (str,'-',2);
puts (str);
不工作, 我知道字符*str = ...
是一个正常的数组声明。
如果任何人都可以帮助我这个我谢谢!
你的问题会在你遇到指针和数组时回答你很多问题。考虑像按值复制或按指针复制(引用其他人称它的方式)。这里有两个相同的概念。 ''char str [] =“hello”;''表示你在该数组中做了一个字面字符串'hello'的拷贝,你可以在那里操作那个字符串,但是当你做'char * str =“hello”;'你现在处理的是一个指向这个Literal字符串的指针,在'C'中你读/访问它们,但是你不能写/编辑它们。希望你现在了解差异。 – Michi
* c不是数组语句。 – Fredrik