我是C编程的新手,我在理解C编程中常见的陷阱和不同库函数的常见用法时遇到了问题.有人能指出一个很好的资源,在那里我可以学习C编程中的细微之处.还有一点可以指向一个很好的资源学习像gdb这样的调试工具.
另外我想知道char *c="hello";和之间有什么区别char c[10]="hello".有人可以告诉我在不同情况下哪一个推荐给另一个.
感谢和问候,
像老鼠.
char *c = "hello";
Run Code Online (Sandbox Code Playgroud)
这使得c一个指针指向不应修改的内存(因此您无法修改数据).但由于它c是一个指针,你可以改变它指向的位置.
char c[10] = "hello";
Run Code Online (Sandbox Code Playgroud)
这使得c一个数组并安排使用指定的字符串初始化数组.由于它是一个数组,您可以修改数据(尽管确保不会溢出缓冲区)但是您无法更改内存c引用中的位置.