C语言~指针数组、数组指针、函数指针、函数指针数组详解
来源:互联网 发布:naive bayes算法 编辑:程序博客网 时间:2024/06/05 19:39
总结指针和数组部分的相关知识自己写的一遍博客:
指针是变量单元的地址,地址指向该变量单元,因此地址形象的称为“指针”,通过指针(地址)可以找到内存单元。
(总结)1.指针是存放地址才出现的,地址是为了标示一块地址空间的;
2.指针让地址有地方存放,指针让内存的访问更加方便;
3.指针的大小在32位平台是4个字节,在64位平台是8个字节。
#include <stdio.h>int main(){ int a = 10; //在内存中开辟一块空间,初始化为10 int *p = &a; //这里我们对变量a,取出它的地址,可以使用&操作符,地址类型为int* //将变量a的地址存放在p变量中,p就是一个指针变量,该指针变量指向a这块空间return 0;}
一级指针 :变量的指针
int main(){int a = 10;int *pa = &a; //整型指针pa保存变量a的地址printf("%d\n", *pa); //解引用pa,通过指针pa找到该空间的值为10return 0;}
二级指针 :指针变量也是变量,是变量就有地址 ;所以变量地址的指针就是二级指针变量
int main(){int a = 10;int *pa = &a; //整型指针变量pa保存整型变量a的地址int **ppa = &pa; //ppa保存pa的地址printf("%d\n", **ppa); //两次解引用,找到a的值为10return 0;}
一维数组 :
int main(){int arr[10] = { 0 }; //arr数组保存十个元素,数组元素初始化为0int i = 0;for (i = 0; i < 10; i++){printf("%d\n", arr[i]); //打印arr数组的十个元素}return 0;}
二维数组
int main(){int arr[3][3] = { 0 }; //初始化三行三列元素,每个元素初始化为0int i = 0;int j = 0;for (i = 0; i < 3; i++){for (j = 0; j < 3; j++){printf("%d\n", arr[i]); //打印九个元素,均为0}printf("\n");}return 0;}
指针和数组的运算
int main(){int ch[5] = { 1, 2, 3, 4, 5 }; int *cp = &ch;&ch; //取出ch空间的地址cp; //cp保存ch空间的地址&cp; //取出的地址为二级指针*cp + 1; //指向数组后面的内容,随机值 *(cp + 1); //取出元素2}
指针数组
用于存储指针的数组,也就是数组元素都是指针
数组指针指向数组的指针
int main(){int c[4] = { 1, 2, 3, 4 };int *a[4]; //指针数组int(*b)[4]; //数组指针b = &c; //将数组c中元素赋给数组afor (int i = 0; i<4; i++){a[i] = &c[i];}printf("%d", *a[1]); //输出2printf("%d",(*b)[2] ); //输出3return 0;}
函数指针
/** 求最小值* 返回值是int类型,返回两个整数中较小的一个*/int min(int a, int b) {return a < b ? a : b;}int(*f)(int, int); // 声明函数指针,指向返回值类型为int,有两个参数类型都是int的函数 int _tmain(int argc, char* argv[]){f = max; // 函数指针f指向求最大值的函数max int c = (*f)(1, 2);f = min; // 函数指针f指向求最小值的函数min c = (*f)(1, 2);printf("The min value is %d \n", c);getchar();return 0;}
函数指针数组
void function0(int x){;}void function1(int x){} void function2(int x) //函数定义{;}int main(){void(*f[3])(int) = { function0, function1, function2 }; //将这3个函数指针保存在数组f中 return 0;}
阅读全文
1 0
- C语言~指针数组、数组指针、函数指针、函数指针数组详解
- 【C语言】函数,函数指针;指针数组,数组指针。
- C语言中的指针(指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针)
- 【C语言】理解指针数组 数组指针 函数指针
- C语言_函数指针数组指针
- c语言:数组指针,指针数组,函数指针,函数指针数组,指向函数指针数组的指针
- C语言:浅析指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针
- C语言:数组 指针 函数
- C语言函数指针数组
- 指针,指针数组,数组指针,函数指针
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数
- C语言指针、指针函数与函数指针、指针数组与数组指针
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- 函数指针指针数组
- 数组指针、函数指针
- 指针&数组&函数指针
- 函数指针数组指针!
- python数据类型和变量的总结
- 集合框架
- LIVE555再学习 -- 单播、多播、广播、直播、点播 都是个啥?
- socket.io在低版本IE使用注意问题
- java面试经常提问的问题
- C语言~指针数组、数组指针、函数指针、函数指针数组详解
- PHP出现 cURL error 60: SSL certificate: unable to get local issuer certificate.的解决办法。
- 普元eos根据查询条件导出excel表格
- hdu 1280 top M
- Java享元模式(Flyweight Pattern)
- SODASODA和怡宝为什么会合作?为您解析市场发展规律
- nodejs+socket.io+zmq 实现实时刷新
- Linux Centos firewall 防火墙 开启 80 端口配置案例
- 1056 最长等差数列 V2