C语言——数组,函数,指针
来源:互联网 发布:仿模板天空 源码 编辑:程序博客网 时间:2024/05/29 18:38
版权声明:原创不易,转载请注明出处:http://blog.csdn.net/wqx521
目录(?)[+]
C语言——数组、函数、指针
宗旨:技术的学习是有限的,分享的精神是无限的。
1、有什么作用?为什么要使用它们?
(1)数组:提供一段连续的存储空间,存数据和字符串很方便;
(2)函数:模块化程序的设计(返回值和参数);
(3)指针:使用灵活;
2、数组的内存布局
【数组和链表区别:数组顺序存储,大小固定;链表随机存储,大小不定。】
int a[5]; --- a作为右值时,代表数组首元素的首地址,而非数组的首地址
//分配了20字节的空间名字为a, a[0], a[1]为a的元素,并非元素的名字。只给数组取名,没给元素取名。
sizeof(a) --- sizeof(int) * 5 --- 20
sizeof(a[0]) --- sizeof(int) --- 4
sizeof(a[5]) --- sizeof(int) --- 4 并没出错,关键字求值是在编译的时候,虽不存在a[5],但这里并未真正访问a[5]。
sizeof(&a[0])--- 4
sizeof(&a)--- 4
&a[0]和&a ---- &a[0]代表数组首元素的首地址,&a是数组的首地址;值一样,意义不同。
右值:出现在“=”右边的值; 左值:出现在“=”左边的值。
a不能作为左值
初始化数组:memset(a,0, sizeof(a)); // 初始化为0
3、指针数组/数组指针,指针函数/函数指针
指针数组:int*a[10]; --- 实质就是个数组,只不过数组里面的元素全是指针。
数组指针:int(*a)[10]; --- 实质就是个指针,指向一个数组。
指针函数:int*a(int b, int c); --- 这就是个普通的函数,只不过返回值是int*类型的。
函数指针:int(*a)(int b, int c); --- a是个函数指针,指向一个函数,b,c是函数的参数,返回值为int【a = fun;】。
【typedefint (*potion_t)(int a, int b) --- potion_t相当于一个类型,可以直接用potion_t定义一个变量,只不过这个变量指向一个函数】
4、值传递和地址传递
值传递过程中,被调函数的形参作为被调函数的局部变量处理,即在内存的栈中开辟空间以存放由主调函数放进来的实参的值,从而成为了实参的一个拷贝。值传递的特点是被调函数对形参的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
而在地址传递过程中,被调函数的形参虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
5、菜单界面的设计
菜单一-- 菜单二-- 菜单三-- 菜单四-- 菜单
/* 将菜单的属性和操作“封装”在一起 */
OK和Cancel键的处理变成:
- C语言——数组、函数、指针
- C语言——数组,函数,指针
- C语言—指针数组
- C语言编程入门——指针与函数、数组
- ios学习路线—C语言(函数,数组,字符串,指针)
- C语言:数组 指针 函数
- C语言函数指针数组
- 【C语言】函数,函数指针;指针数组,数组指针。
- C语言_函数指针数组指针
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- 【C语言】理解指针数组 数组指针 函数指针
- C语言中的指针(指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针)
- C语言——数组与指针
- c语言 —— 指针与数组
- C语言——数组与指针
- c语言基础——指针数组
- 《算法分析与设计》Week 11
- leetcode.303.Range Sum Query
- 获取屏幕宽高的三种方式
- Java8新特性函数式接口
- 前端基础笔记09
- C语言——数组,函数,指针
- POJ3253 Round Numbers + HDU2089 不要62 —— 数位DP
- hdu 2089 垃圾题目毁我青春
- 堆排序
- unity实现第三视角跟随物体运动
- java8新特性之一:接口的增强
- 问题:京东API接口调用,及搜索接口keyword传值问题
- jquery
- macOS 窗口和窗口控制器教程