#include <stdio.h>
char *my_strcat(char *dest, const char *src) {
char *p = dest;
while (*dest) {
dest++;
}
while (*src) {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
return p;
}
int main() {
char dest[100] = "Hello, ";
char *src = "World!";
printf("%s\n", my_strcat(dest, src));
return 0;
}
#include <stdio.h>
int my_strcmp(char *str1, char *str2) {
while (*str1 && (*str1 == *str2)) {
str1++;
str2++;
}
return *str1 - *str2;
}
int main() {
char *str1 = "Hello";
char *str2 = "word";
printf("%d\n", my_strcmp(str1, str2));
return 0;
}
1.预处理
功能:
1.头文件的展开
2.注释的删除
3.不会检查语法的错误
4.宏的替换
:gcc -E 1.c -o 1.i
2.编译
功能:
1.会检查语法错误
2.生成一个汇编文件
:gcc -S 1.i -o 1.s
3.汇编
功能:生成二进制文件
:gcc -c 1.s -o 1.o
4.链接
功能:链接到动态库或者静态库
gcc 1.o -o a.out
指针数组 int *p[10] 本身是一个数组,里面存放的是指向int类型的指针
数组指针 int (*p)[10] 本身是一个指针,指向大小为10个int类型空间的指针。