姓名:黄诗佳 日期:2018年6月22日
今日学习任务:复习关于数组与指针以及关键字等c语言知识点还有冒泡排序输出。
今日任务完成情况:按时完成今天的任务,开发代码量约150行。
今日开发中出现的问题汇总:指针和数组的结合运用不熟悉。
今日未解决问题:数组的地址运用还要继续消化。
今日开发收获:巩固了数组与指针的知识点,对以前没有注意到的基础知识点有了更系统的学习。(堆,栈,程序运行步骤等)
自我评价:写代码速度依旧很慢,还要更加系统的学习。
1.一维数组,二维数组如何定义,初始化?如何在程序中赋值?
一维数组:
类型说明符 数组名[常量表达式]; 例如: int a[10];
赋值:在定义数组时对数组元素赋以初值 例如:int a[10]={0,1,2,3,4,5,6,7,8,9};
二维数组:类型说明符 数组名[常量表达式][常量表达式]; 如:float[3][4];
赋值:
1.在定义数组时对数组元素赋以初值。
例如:int a[10]={0,1,2,3,4,5,6,7,8,9};
2. 可以只给一部分元素赋值。例如:
int a[10]={0,1,2,3,4};
定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。
3. 如果想使一个数组中全部元素值为0,可以写成:
int a[10]={0,0,0,0,0,0,0,0,0,0};
或int a[10]={0};
不能写成:int a[10]={0*10};
4. 在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。
例如:int a[5]={1,2,3,4,5};
也可以写成 int a[]={1,2,3,4,5};
int a[10]={1,2,3,4,5}; 只初始化前5个元素,后5个元素为0。
5.数组的地址,a和&a
2.字符数组如何定义,初始化,如何程序中赋值?:
例如:char c[10];
c[0]=′I′ ; c[1]=′ ′; c[2[=′a′; c[3]=′m′;
c[4]=′ ′; c[5]=′h′; c[6]=′a′; c[7]=′p′;
c[8]=′p′; c[9]=′y′;
3.字符数组如何定义,初始化,如何程序中赋值?
对字符数组初始化,可逐个字符赋给数组中各元素。
例如:
char c[10]={‘I’, ‘’,‘a’,‘m’,‘’,‘h’,‘a’,‘p’, ‘p’,‘y’} ;
4.字符串常见函数的使用,不用函数如何实现字符串的复制,字符串长度的实现?
新建一个空数组,将字符串一个一个放入空数组中。
定义一个计数位flag,将字符串中的字符一个个和\0进行比较,不相等时flag+1,相等时结束比较,此时flag值为字符串长度。
5.函数的构造有哪些?入参,返回值如何在函数中体现?形参,实参是如何传递数据?
构造:函数类型 函数名(形式参数类型说明表){声明部分 执行部分}
入参用形式参数来体现,返回值则由函数类型来决定。
数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。
6.值传递,地址传递是怎么回事?如何实现在子函数中数值交换后在主函数中能实现?
值传递:
函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值;
地址传递:
函数调用时,将数据的存储地址作为参数传递给形参
7. Auto,register,extern,static关键字的使用,详细说明
auto
普通局部栈变量,是自动存储,这种对象会自动创建和销毁 ,建议这个变量要放在堆栈上面,调用函数时分配内存,函数结束时释放内存。一般隐藏auto默认为自动存储类别。我们程序都变量大多是自动变量。
register
寄存器变量,请求编译器将这个变量保存在CPU的寄存器中,从而加快程序的运行
extern
外部变量声明,是指这是一个已在别的地方定义过的对象,这里只是对变量的一次重复引用,不会产生新的变量。
static
静态数据,数据存放在全局数据区,但作用域只是本文件/函数 中,所以你可以在两个不同的文件/函数内部申明同名的static变量,但是它们是两个不同的全局变量。 如果是定义在函数内,那么该对象具有无链接,函数外不能对其访问。如果是定义在函数外,那么该对象具有内部链接,其它程序文件不能对其访问。
8.文件的包含有几种?分别表示什么意思?
#include "stdio.h" 在当前目录和TC指定的目录中找该文件
#include
9.宏定义如何实现?撤销定义如何实现?
不带参数宏:
一般形式: #define 宏名 [宏体]
功能:用指定标识符(宏名)代替字符序列(宏体)
定义位置:任意(一般在函数外面)
作用域:从定义命令到文件结束
#undef可终止宏名作用域
格式: #undef 宏名
#define YES 1
#define NO 0
#define PI 3.1415926
#define OUT printf(“Hello,World”);
带参数宏:
一般形式: #define 宏名(参数表) 宏体
例 #define S(a,b) a*b撤销定义:
#undef命令可以取消定义一个名称为宏:
#undef name