1.数组与指针的关系
1.1一维数组和指针的关系
数组的组名a是指向数组第一个元素的指针常量
int a[5]= {1,23,4,5,6}
a == &a[0];
a的类型可以理解为int *(sizeof运算时和&运算时除外)
a[n] ==*(a+n) ==*(p+n)==p[n]
1.2一维数组传参
定义:int Fun(int *parray,int len)
{
}
1.3一维字符数组传参
int Fun(char *pstr,int len)
{
}
1.4字符串传参
char str[20] = {"hello world"}
int Fun(char *pstr)
{
}
字符串遍历:
char str[20] = {"helloworld"}
char *p = NULL;
int i =0;
p = str;
while(*p != '\0')
{
p++;
i++;
}
2.数组指针和指针数组
数组指针 (指针)::指针指向一个数组
指针数组 (数组)::数组每个元素都是指针类型
int *a[5] = {NULL};========指针数组
interesting(*a)[5];========数组指针
2.1数组指针
int a[5];
&a:获得数组的首地址,其类型为int(*)[5]
对一维数组数组名&,值不变,类型升级为数组指针类型
对数组指针*,值不变,类型降级成为指向数组第一个元素的指针
1.封装一个函数实现MyStrlen实现strlen的功能
2.封装一个函数实现MyStrcpy实现strcpy的功能
3.封装一个函数实现MyStrcat实现strcat的功能
4.封装一个函数实现MyStrcmp实现strcmp的功能
5.封装一个函数实现字符串的倒置(逆序)
6.从终端输入一个a和n封装函数按照如下公式获得结果