学习日志 严栋 6月22日


今日学习任务:数组,函数,指针

今日任务完成情况:基本完成,代码量200行左右。

今日开发中出现的问题汇总:指针不太会

今日未解决问题:基本解决

今日开发收获:复习了c语言的数组、指针、函数,通过练习进行了强化。

自我评价:遇到一些不会的小问题可以及时百度解决。


总结:

1.一维数组,二维数组如何定义,初始化?如何在程序中赋值?

一维数组:

类型说明符  数组名[常量表达式];  例如:  int a[10];  

赋值:在定义数组时对数组元素赋以初值   例如:int a[10]={0,1,2,3,4,5,6,7,8,9};

二维数组:类型说明符  数组名[常量表达式][常量表达式]; 如:float[3][4];

赋值:1.分行给二维数组赋初值。 如:int a[2][2]={{1,2},{3,4}};

          2.可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。例如:int a[2][3]={1,2,3,4,5,6};

          3.可以对部分元素赋初值。

          4.如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

2.字符数组如何定义,初始化,如何程序中赋值?

对字符数组初始化,可逐个字符赋给数组中各元素。
例如:
char c[10]={‘I’, ‘’,‘a’,‘m’,‘’,‘h’,‘a’,‘p’, ‘p’,‘y’} ;

3.字符串常见函数的使用,不用函数如何实现字符串的复制,字符串长度的实现?

新建一个空数组,将字符串一个一个放入空数组中。

定义一个计数位flag,将字符串中的字符一个个和\0进行比较,不相等时flag+1,相等时结束比较,此时flag值为字符串长度。

4.函数的构造有哪些?入参,返回值如何在函数中体现?形参,实参是如何传递数据?

构造:函数类型     函数名(形式参数类型说明表){声明部分 执行部分}

入参用形式参数来体现,返回值则由函数类型来决定。

数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。

5.值传递,地址传递是怎么回事?如何实现在子函数中数值交换后在主函数中能实现?

值传递:

函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值;

地址传递:

函数调用时,将数据的存储地址作为参数传递给形参

6. Auto,register,extern,static关键字的使用,详细说明

auto    
普通局部栈变量,是自动存储,这种对象会自动创建和销毁 ,建议这个变量要放在堆栈上面,调用函数时分配内存,函数结束时释放内存。一般隐藏auto默认为自动存储类别。我们程序都变量大多是自动变量。
register
 寄存器变量,请求编译器将这个变量保存在CPU的寄存器中,从而加快程序的运行
extern   
外部变量声明,是指这是一个已在别的地方定义过的对象,这里只是对变量的一次重复引用,不会产生新的变量。 
static  
 静态数据,数据存放在全局数据区,但作用域只是本文件/函数 中,所以你可以在两个不同的文件/函数内部申明同名的static变量,但是它们是两个不同的全局变量。 如果是定义在函数内,那么该对象具有无链接,函数外不能对其访问。如果是定义在函数外,那么该对象具有内部链接,其它程序文件不能对其访问。

7.文件的包含有几种?分别表示什么意思?

#include  "stdio.h"  在当前目录和TC指定的目录中找该文件
#include  <stdio.h> 在由TC指定的文件目录中找该文件

8.宏定义如何实现?撤销定义如何实现?

实现:#define   宏名    [宏体]

撤销:#undef    宏名


猜你喜欢

转载自blog.csdn.net/qq_42492615/article/details/80777893