即使数组未赋值 指针变量仍可以指向后面的数组元素
++和*有相同优先级
void fun(int arr[]);相当于void fun(int *arr);形参相当于一个指针变量 !!!传递数组名时(即使名字不同) 相当于把实际地址传给函数 两者共用一段内存单元 故对函数内数组的更改会影响主函数的数组
fun(array);
*(a[i]+j) 表示a【i】【j】
等号的左边只能是变量,不可以是表达式 即使表达式是 个常量
- p2 - p1 ==2 表示*p2 与*p1中间隔了两个元素
- # include<stdio.h>
- # include<string.h>
- int main()
- {
- void reverse(char *p1,int n1); 意思是传入一个地址 数组名表示数组首元素的地址
- char s[1000];
- char *p;
- p=s;///!!!! p=&s[0]
- gets(s);
- int n=strlen(s);
- reverse(p, n);/////!!!!!
- return 0;
- }
- void reverse(char *p1,int n1)
- {
- for(int i=0;i<n1;i++)
- {
- char c[1000];
- c[i]=*(p1+n1-1-i);
- printf("%c",c[i]);
- }
- }