函数指针 函数指针数组 指针函数 数组指针 指针数组
2017-08-07 17:57
288 查看
指针与数组:
指针与一维数组:
int arrInt[] = {1,2,3,4,5};
int* pa = arrInt;
*pa <==> arrInt[0];
*(pa+1) <==> arrInt[1];
*(pa+2)=6; <==> arrInt[2]=6;
void func(int*);
void func(int arr[]); // 与void func(int*); 形式是一样的
void func(int arr[4]); // 只接收元素个数为4的整形数组
函数指针:
void func1();
void func2(int);
void func3(int, double);
int* func4();
声明函数指针:
void (*pf1)(); // pf1表示返回值void,没有参数的函数。
void (*pf2)(int); // pf2表示返回值void,参数只有一个int的函数。
void (*pf3)(int, double); // pf3表示返回值void,参数顺序为int、double的函数。
int* (*pf4)(); // pf4表示返回值int*,无参的函数。
函数指针赋值:(函数名就是一个内存地址)
pf1 = func1;
pf2 = func2;
pf3 = func3;
pf4 = func4;
函数指针调用:
(*pf1)(); 调用func1
(*pf2)(1); 调用func2
(*pf3)(1, 1.3); 调用func3
(*p4)(); 调用func4
函数指针数组:
void (*pf[3])(); 声明3个指向void func();函数的指针
指针函数:
返回值为指针的函数形似int* func();
指针数组:(存放指针的数组)
int *pa[3]; // []优先级高于*,[]先与int结合组成数组,再由int*声明数组元素为指针。
int a,b,c;
pa[0] = &a;
pa[1] = &b;
pa[2] = &c;
数组指针:(指向数组的指针,也叫行指针)
int (*pa)[3]; // ()、[]优先级一样高,从左到右结合,首先是()强调pa是指针,然后是[3]pa指向有三个元素的一维数组。
int arrInt[3] = {1,2,3};
pa = arrInt;
pa++; //跨越一个数组长度,越界操作。
数组指针通常与二维数组联用:
int arrDoubleInt[4][3];
pa = arrDoubleInt[0]; // 指向第一行
pa[0][1] == *(*(pa+0)+1) == 第一行第二列数据。
pa++; // 指向第二行
指针与一维数组:
int arrInt[] = {1,2,3,4,5};
int* pa = arrInt;
*pa <==> arrInt[0];
*(pa+1) <==> arrInt[1];
*(pa+2)=6; <==> arrInt[2]=6;
void func(int*);
void func(int arr[]); // 与void func(int*); 形式是一样的
void func(int arr[4]); // 只接收元素个数为4的整形数组
函数指针:
void func1();
void func2(int);
void func3(int, double);
int* func4();
声明函数指针:
void (*pf1)(); // pf1表示返回值void,没有参数的函数。
void (*pf2)(int); // pf2表示返回值void,参数只有一个int的函数。
void (*pf3)(int, double); // pf3表示返回值void,参数顺序为int、double的函数。
int* (*pf4)(); // pf4表示返回值int*,无参的函数。
函数指针赋值:(函数名就是一个内存地址)
pf1 = func1;
pf2 = func2;
pf3 = func3;
pf4 = func4;
函数指针调用:
(*pf1)(); 调用func1
(*pf2)(1); 调用func2
(*pf3)(1, 1.3); 调用func3
(*p4)(); 调用func4
函数指针数组:
void (*pf[3])(); 声明3个指向void func();函数的指针
指针函数:
返回值为指针的函数形似int* func();
指针数组:(存放指针的数组)
int *pa[3]; // []优先级高于*,[]先与int结合组成数组,再由int*声明数组元素为指针。
int a,b,c;
pa[0] = &a;
pa[1] = &b;
pa[2] = &c;
数组指针:(指向数组的指针,也叫行指针)
int (*pa)[3]; // ()、[]优先级一样高,从左到右结合,首先是()强调pa是指针,然后是[3]pa指向有三个元素的一维数组。
int arrInt[3] = {1,2,3};
pa = arrInt;
pa++; //跨越一个数组长度,越界操作。
数组指针通常与二维数组联用:
int arrDoubleInt[4][3];
pa = arrDoubleInt[0]; // 指向第一行
pa[0][1] == *(*(pa+0)+1) == 第一行第二列数据。
pa++; // 指向第二行
相关文章推荐
- 函数指针、指针函数、指针的指针、指向数组的指针
- 3.常量指针、指针常量、指针数组、数组指针、指针函数、函数指针
- 解析数组与指针的各种用法(包括函数指针、指针函数)
- 函数指针,指针函数,数组指针,指针数组 区分
- 函数指针—指针函数 数组指针—指针数组 类模板—模板类 函数模板——模板函数 的区别
- 指针数组,数组指针,指针函数,函数指针数组,指向函数指针数组的指针
- 函数指针 指针函数 指针的指针 指向指针数组的指针
- 函数指针与指针函数的区别及函数指针数组
- 函数指针、指针函数、指针的指针、指针数组
- 函数指针和指针函数 数组指针和指针数组
- 指针函数、数组指针、函数指针、函数指针数组和指向函数指针数组的指针
- 指针数组 数组指针 指针函数 函数指针
- 指针数组、数组指针、常指针、指向常量的指针、指针函数、函数指针等概念的区分
- C/C++ 学习笔记:指针数组 数组指针 指针函数 函数指针
- 指针数组、数组指针、指针函数、函数指针、函数指针数组解析
- 函数指针和指针函数,函数指针数组
- 函数指针、指针函数、指针的指针、指向指针数组的指针
- 如何区别指针数组和数组指针 && 如何区别函数指针和指针函数
- 指针数组、数组指针、指针函数、函数指针、函数指针数组、对象指针解析
- 函数指针、指针函数、指针数组、数组指针