C语言中想表示一堆分数相加,c语言复习

姓名:黄诗佳 日期: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关键字的使用,详细说明

190762d2b1a1c700e3b4ffd77ca043d5.png

auto

普通局部栈变量,是自动存储,这种对象会自动创建和销毁 ,建议这个变量要放在堆栈上面,调用函数时分配内存,函数结束时释放内存。一般隐藏auto默认为自动存储类别。我们程序都变量大多是自动变量。

register

寄存器变量,请求编译器将这个变量保存在CPU的寄存器中,从而加快程序的运行

extern

外部变量声明,是指这是一个已在别的地方定义过的对象,这里只是对变量的一次重复引用,不会产生新的变量。

static

静态数据,数据存放在全局数据区,但作用域只是本文件/函数 中,所以你可以在两个不同的文件/函数内部申明同名的static变量,但是它们是两个不同的全局变量。 如果是定义在函数内,那么该对象具有无链接,函数外不能对其访问。如果是定义在函数外,那么该对象具有内部链接,其它程序文件不能对其访问。

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

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

#include  在由TC指定的文件目录中找该文件

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

………..

area=S(3,2);

宏展开:         area=3*2;

宏展开:形参用实参换,其它字符保留

宏体及各形参外一般应加括号()

撤销定义:

#undef命令可以取消定义一个名称为宏:

#undef name

这个命令使预处理器忘记name的所有宏定义。取消一个当前未定义宏的定义并不是错误。当一个名称被取消定义之后,就可以向它提供一个全新的定义(使用#define),而不会产生任何错误。在#undef命令内部,并不会执行宏替换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值