我最初是一名 Java 程序员,现在正在为 C 尤其是 C 的指针而苦苦挣扎。
我的想法是在命令行上从用户那里接收一个字符串到一个字符指针中。然后我想访问它的各个元素。后来的想法是设计一个可以反转元素顺序的函数。(我想在文本中使用字谜。)
我的代码是
#include <stdio.h>
char *string;
int main(void)
{
printf("Enter a string: ");
scanf("%s\n",string);
putchar(*string);
int i;
for (i=0; i<3;i++)
{
string--;
}
putchar(*string);
}
(对不起,代码标记不起作用)。我想做的是先尝试访问单个元素。如果字符串是“Santillana”并且指针设置在最开始(在 scanf() 之后),则内容 *string 应该是 S。如果我不知道,指针应该恰好设置在 '\0'在 scanf() 之后,备份几个步骤(字符串 - 重复)应该会以带有 *string 的字符的方式产生一些东西。但是,这两个 putchar() 都会产生分段错误。
我在做一些根本上错误的事情,而一些根本性的事情已经逃脱了我。对于我的缺点的任何建议,我将永远感激不尽,最重要的是任何说明这些特殊问题的书籍/资源的提示。就这一点而言,两本厚厚的 C 书和参考手册已被证明毫无用处。