姓名:魏梓荆 日期:2018.06.22
今日学习任务: 一维数组、二维数组、函数、预处理
今日任务完成情况: 任务按时完成,紧跟老师的安排进行C语言的温习与学习
开发代码量:233行
今日开发中出现的问题汇总: 指针比较昏,不能熟练运用
今日未解决问题: 指针有待加强
今日开发收获: register、static、extern的运用
C语言编译的四个步骤:预处理(.c->.i)、编译(.i->.s)、汇编(.s->.o)、链接(.o->可执行文件)
内存分为:数据段、代码段、堆、栈、BSS段
宏函数与自定义函数的区别
自我评价:认真听课学习,学到很多新的东西,感觉很充实,同时也发现自己在指针方面有着较大的缺陷,还需加强
总结:
1.一维数组,二维数组如何定义,初始化?如何在程序中赋值?
int a[4] = {1, 2, 3, 4}; int a[4] = {1, 2}; int a[4] = {0}; int a[] = {1, 2, 3, 4};
int a[2][3] = {{1, 2, 3}, {5, 6, 7}}; int a[2][3] = {{1, 3}, {4}}; int a[2][3] = {1, 2, 3, 4, 5, 6}; int a[][3] = {{1, 2, 4}, {5, 6}};
2.字符数组如何定义,初始化,如何程序中赋值?
char a[4]; a[0] = 'A'; a[1] = 'B'; a[2] = 'C'; a[3] = 'D';
char c[4] = {'E', 'F', 'G', 'H'};
3.字符串常见函数的使用,不用函数如何实现字符串的复制,字符串长度的实现?
如果不用函数,可把字符串里的字符一个一个分别赋值给另一个数组来实现复制。
4.函数的构造有哪些?入参,返回值如何在函数中体现?形参,实参是如何传递数据?
函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。
值传递、地址传递
5.值传递,地址传递是怎么回事?如何实现在子函数中数值交换后在主函数中能实现?
值传递:给形参分配单元,将实参的值复制给形参;地址传递:将数据存储的地址传给形参。用extern实现在子函数中数值交
换后在主函数中实现。
6. Auto,register,extern,static关键字的使用,详细说明
extern 外部变量声明,是指这是一个已在别的地方定义过的对象,这里只是对变量的一次重复引用,不会产生新的变量。
static 静态数据,数据存放在全局数据区,但作用域只是本 文件/函数 中,所以你可以在两个不同的文件/函数内部申明同名的static变量,但是它们是两个不同的全局变量。 如果是定义在函数内,那么该对象具有无链接,函数外不能对其访问。如果是定义在函数外,那么该对象具有内部链接,其它程序文件不能对其访问
auto 普通局部栈变量,是自动存储,这种对象会自动创建和销毁 ,建议这个变量要放在堆栈上面,调用函数时分配内存,函数结束时释放内存。一般隐藏auto默认为自动存储类别。我们程序都变量大多是自动变量。
register 寄存器变量,请求编译器将这个变量保存在CPU的寄存器中,从而加快程序的运行.
7.文件的包含有几种?分别表示什么意思?
#include "stdio.h"
在当前目录和TC指定的目录中找该文件
#include <stdio.h>
在由TC指定的文件目录中找该文件
8.宏定义如何实现?撤销定义如何实现?
#define uint unsigned int;
#undef xxx;