我刚开始看一下来自java背景的C语言.我很困难地把头包裹在指针周围.从理论上讲,我觉得我得到它但是一旦我尝试使用它们或者按照使用它们的程序,我很快就会迷失方向.我试图遵循字符串连续练习,但它没有工作,所以我把它剥离到一些基本的指针练习.它符合strcat函数的警告冲突类型,当我运行它时,崩溃完全崩溃.
谢谢你的帮助
#include <stdio.h>
#include <stdlib.h>
/* strcat: concatenate t to end of s; s must be big enough */
void strcat(char *string, char *attach);
int main(){
char one[10]="test";
char two[10]="co";
char *s;
char *t;
s=one;
t=two;
strcat(s,t);
}
void strcat(char *s, char *t) {
printf("%s",*s);
}
Run Code Online (Sandbox Code Playgroud)
你printf()应该看起来像这样:
printf("%s",s);
Run Code Online (Sandbox Code Playgroud)
星号是不必要的.该%s格式参数意味着该说法应该是char*,这是什么s是.前缀s使用*额外的无效间接.
您收到有关冲突类型的警告,因为它strchr是一个标准库例程,它应具有以下签名:
char * strcat ( char * destination, const char * source );
Run Code Online (Sandbox Code Playgroud)
你的回复类型不同.您可能应该将您的名称重命名为mystrchr其他名称以避免与标准库发生冲突(如果使用相同的名称,可能会出现链接器错误).