指针在32位中大小为4  64位中为8

c自学day12-指针详解1_回调函数


两个不同数组的值是不一样的

c自学day12-指针详解1_回调函数_02


指针的为常量字符串不能修改,在内存中只存了一份 所以指的是同一个地址

修改p1 p2和字符串没关系

c自学day12-指针详解1_回调函数_03


int* parr[]    存放整形指针的数组   char*pch[] 存放字符型指针的数组

c自学day12-指针详解1_数组指针_04

parr【i】是每个数组的首元素 +j为后面元素的地址

c自学day12-指针详解1_数组_05


整形指针:可以存放整形的地址

字形指针:可以存放字符的地址

数组指针:可以存放数组的地址

arr--首元素的地址      &arr【0】--首元素地址            ​&arr--数组的地址


c自学day12-指针详解1_回调函数_06


int arr[5]​;           //arr是一个5个元素的整形数组

int *parr1[10]​;      //parr1是一个数组,数组有10个元素,每个元素的类型是 int*,parr1是指针数组

int (*parr2)[10]​;  //parr2是一个指针,该指针指向一个数组,数组有10个元素,每个元素类型是int,parr2是数组指针

int (*parr3[10])[5]​;  //parr3是一个数组,该数组有十个元素,每个元素是一个数组指针,该数组指针指向的数组有5个元素,每个元素是int。


一维数组传参

c自学day12-指针详解1_数组_07



二维数组传参

c自学day12-指针详解1_数组指针_08

c自学day12-指针详解1_回调函数_09


函数指针--存放函数地址的一个指针c自学day12-指针详解1_数组_10

c自学day12-指针详解1_数组指针_11


(*p)——代表是指针 (*p)()第二个括号代表这是个函数

(char*)代表函数类型是char型 返回值void


c自学day12-指针详解1_回调函数_12


下图是否解引用都可

c自学day12-指针详解1_数组_13


函数指针数组

c自学day12-指针详解1_回调函数_14

c自学day12-指针详解1_回调函数_15


 函数指针数组可用作转移表、比如可以实现简单的计算器


回调函数

指通过函数指针调用的函数,指函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其指向的函数时,我们就说这是回调函数。回调函数不是由该函数方直接调用,而是在条件下由另一方调用


在test中通过p调用c自学day12-指针详解1_回调函数_16


c自学day12-指针详解1_回调函数_17



指向函数指针数组的指针(了解概念)

c自学day12-指针详解1_数组_18