字符串常量和字符数组
1.什么是字符串常量和字符数组
我们先来看一下代码。
int main()
{
char *str1 = "abcde";//字符串常量,数组指针
char str2[] = "abcde";//字符数组
printf("%s \n",str2);
printf("%s \n",str1);
for(int i=0;i<5;i++)
{
printf("%c ",*(str1+i));
}
printf("\n");
return 0;
}
我们可以看见将数组指针打印依旧是相同的值,我们来了解一下其具体的实现。
我们由次可以看出*str[0]保存的是str[0]的地址,以此类推通过定义数组指针一般用来干什么,
我们来简单的了解下:
#include<stdio.h>
#include<string.h>
//比较两字符串的大小
void Max(char **str)//传入的是数组指针的地址所以用二级指针,或者写*str[]
{
char *tmp;//定义一个中的指针变量
if(strcmp(str[0],str[1])>0)//比较字符串大小的函数
{
tmp = str[0];
str[0] = str[1];
str[1] = tmp;
}
}
int main()
{
char *str[2] = {"aszdf","agvgh"};//数组指针
Max(str);
for(int i=0;i<2;i++)
printf("%s ",str[i]);
}