1.ctrl + i 自动对齐
3.复制传参:实参传给形参。形参改变,实参值不变
4.地址传参:实参p的地址为*p。使用指针变量传参。形参改变,实参值改变
5.p[x][y]==((p+x)+y)
6.传一维指针
7.传二维指针:二维数组是行指针,传二维数组a[2][4],函数后用数组指针(*p)[4]
8.传二维指针:printf("%d\n,((p+1))+2)")意思为:p(行指针)+1--第二行,(p+1)降级为列指针,(p+1)+2--行指针向右移2列,((p+1)+2)--取值 输出数组里的值
9.传指针数组:直接将指针数组*p的地址(**p)写在void fun()的括号内
10.一维数组,二维数组和指针数组传参给函数,函数内部数组改变则原来的数组也改变
11.static静态区的代码不会随着当前代码的结束而结束,char栈区空间会随着结束而释放空间
12.指针函数的本身是个函数,返回值是指针//不加括号
13.函数指针是保存函数地址的//加括号()
14.函数指针 int(*p)(int,int);--返回值类型(*变量)(形参列表) 调用的时候直接p=另一个函数名
15.函数指针数组 int(*p[10])(int,int);
16.回调函数运用函数指针数组:
17.任何类型的指针都可以给void类型指针赋值(intp;void*q;q=p;)
18.voidmemest(voids,int c,size_t n);将s指向前n个字节赋值为c
19.指针变量的字节占4个
20.NULL指针初始化:char*p=NULL;