您的位置:首页 > 编程语言 > C语言/C++

菜鸟自学嵌入式之C语言基础No3

2013-07-03 21:12 183 查看
c基础很薄弱,仅限非计算机专业大学学的那点点基础。以后会每天更新个人的学习笔记。菜鸟的我是这样学下来滴。走过路过的,不许笑话。有缘看见的,欢迎指点。
1.指针常量 (指针的指向不可改)定义 int * const p=&a;2.常量指针 (指针所指向内容作为常量)定义 const int *p1=&a;特点:p1的指向可以变,a的值也可以改变。不可以通过*p1改变a的值【常量指针常量 const int * const p】3.数组指针int a[2][3];int (* pa)[3]=a // 指向数组的指针pa=a //pa地址==a首地址pa+1=a[1]指针数组, 数组指针Int *a[3], int (*a)[3]Int *p = a;a += 1;A - p = (?)4/12函数面向过程,模块化编程(功能)1.变量与函数之间的关系内部变量[又称局部变量 or自动变量]auto 自动变量关键字,默认皆为此类型可省略[被调用时在栈区分配内存,调用结束释放内存]内部变量不做初始化,其值为垃圾数据   在语句块起作用。生命周期与该语句块一致外部变量[全局变量]放在全局区[又称为静态存储区 ]生命周期与程序运营周期一致外部变量多文件共享情况,某文件已经定义 int a;其他文件要引用该全局变量需要声明 extern int a;//注意声明时不可赋值外部变量不做初始化,默认结果为0;静态变量关键字 static 把全局/局部变量放在全局区(静态区),不随函数调用结束释放。[静态内部变量可以重名]定义变量 static int i=0; 只有第一次给i初始化,之后再被调用不再进行初始化操作static 变量如果没有初始化,系统自动初始化为0静态全局变量只限于当前文件使用,不同文件静态全局变量可以重名寄存器变量关键字 register 把高频变量放在寄存器中,运行速度快寄存器变量的地址不可访问2.变量的定义和声明定义:为变量划分内存空间,用数据类型定义。声明:不划分内存,只是使用初始化:给变量赋值3.函数与函数两个函数之间只能外部关系,函数皆是全局的,所以可跨文件使用静态函数 static 只能在当前文件中使用4.函数调用--参数传递传递数组必须传递数组长度 print_arr(int a[],int size) 或者 print_arr(int *p,int size)二维数组传递时要传递行数和列数,同时二维数组列数必须标出,本质是传递一维数组指针和长度数组传递只能按址传递,不可以按值传递二维数组传递时不可以用二维指针接受[c语言对二级指针封装,无法查询二级指针地址]5.函数调用--返回值函数返回值为指针且指针指向局部变量,如果返回栈内存会发生错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: