指针在32位平台是4个字节,在64位平台是8个字节

初学C语言笔记220927—指针_回调函数


初学C语言笔记220927—指针_回调函数_02

这在GCC里会报错:初学C语言笔记220927—指针_函数指针数组_03


int main()
{
char arr1[] = "abc";
char arr2[] = "abc";
char* p1 = "abc"; //常量字符串 正确的写法是:
char* p2 = "abc"; // const char* p1 = "abc";

if (arr1 == arr2)
printf("yes\n");
else
printf("no\n");// <--输出
//——————————————————————————
if (p1 == p2)
printf("yes\n");// <--输出
else
printf("no\n");

return 0;
}

初学C语言笔记220927—指针_回调函数_04

*pa == arr


int arr[3][5] = {0};   // 
int (*p)[5] = arr;//arr是二维数组首元素的地址也就是第一个一维数组的地址

初学C语言笔记220927—指针_函数指针数组_05

p[i][j] == *(p[i]+j) == *( (p+i) + j ) ==( *(p+i) )[j]


初学C语言笔记220927—指针_函数指针数组_06


初学C语言笔记220927—指针_一维数组_07

以上都对


初学C语言笔记220927—指针_一维数组_08


初学C语言笔记220927—指针_一维数组_09


函数指针  void (*p)(int,int)

函数指针数组  void (*parr[5])(int,int)

指向函数指针数组的指针  void (*pparr[5])(int,int) = &parr;

回调函数