C语言指针的相关注意点
①数组名就是首地址(或是数组名[0]),且是一个不可修改的指针变量。 ②附代码如下(C语言标准默认规则)
char* p1, p2;
printf("%d %d\n", sizeof(p1), sizeof(p2));
使用指针重写strcpy、strcmp、strcat、strlen的C源码
细节部分暂未考虑,没有经过大量测试数据测试,仅提供思路,同时代码待优化。
static void strcpy(char *dest, char *sour)
{
if (dest == NULL || sour == NULL)return;
while (*sour != '\0')*(dest++) = *(sour++);
}
static void strcat(char *arr1, char *arr2)
{
if (arr1 == NULL || arr2 == NULL)return;
while (*arr1 != '\0') ++arr1;
while (*arr2 != '\0')*(arr1++) = *(arr2++);
}
static int strlen(char *arr)
{
if (arr == NULL)return;
int count = 0;
while (*(arr++) != '\0')++count;
return count;
}
static int strcmp(char *arr1, char *arr2)
{
if (arr1 == NULL || arr2 == NULL)return;
while (*arr1 == *arr2)
{
if (*arr1 == '\0')return 0;
else
{
++arr1;
++arr2;
}
}
if (*arr1 > *arr2)return 1;
else if (*arr1 < *arr2)return -1;
}
|