Process_3 C语言程序的复习

目录

函数

数组

概念

浅要的讲解一下基础知识:

  操作符

     简单的一些

sizeof

用途 

++类     --类

强制类型转化

逻辑操作符

关键字

基本关键字 

补充EOF的作用(本人也是复习了一遍才知道,建议读者看看,研究研究)

register -寄存器

static—— 静态

链接属性问题-static

#define宏的定义

指针(即地址)


函数

    函数这一块比较简单,会写就行。


数组

概念

       数组的概念—— 数组中可以存放一组相同类型的元素

       数组—— 一组相同类型元素的集合

浅要的讲解一下基础知识

        int arr[3]={1,2,3};

       创建和初始化;

       int arr[10] ={1,2,3};//不完全初始化,剩余的默认初始值为0;

       char ch[5] ={'a','b','c'};//不完全初始化,剩余默认初始值为  \0。

        通过下标访问元素

       


  操作符

     简单的一些

      /  除号两端如果都是整数,执行的是整数除法

       / 除号的两端至少有一个数是浮点数,才能执行浮点数的除法

       % 叫做  取模  或则 取余

       % 操作的两个数必须是两个整数

       %f—— 打印float类型的浮点数

       %lf—— 打印double 类型的浮点数


       在用于输出时:

       float类型可以使用%lf格式,但不会有任何好处。

       double类型如果使用了%f格式可能会导致输出错误。

     (printf中一般可以用%f代替%If)

       在用于输入时:

       double类型使用了%f格式,会导致输入值错误。

       float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。

     (scanf中%lf与%f是严格区分的)


sizeof

用途 

在此可以思考一下与strlen的区别;


++类     --类

++:

这里不过多的做出说明,很简单。

       


强制类型转化

       形如:(类型) 如下所示

       int a = (int )3.14;//这里支取整数部分,意思是a为3;

        不做过多的解释,太基础。

逻辑操作符

    逻辑与: &&

    逻辑或:||

   

    (只关注真假)


关键字

基本关键字

   


补充EOF的作用(本人也是复习了一遍才知道,建议读者看看,研究研究)

在这里补充一点:

           在键盘上按CTRL+Z可以使scanf读取失败。

这里为什么会有三个 ^z 咧,可能是因为visual编译器的原因

sacnf函数读取失败的时候会返回EOF

  如果读取正常的话,返回的是读取到的数据的个数


register -寄存器

建议编译器见此数据放置在寄存器中,提高程序的效率,

不过现在几乎不用关心这个问题,因为现在的编译器都非常的高级,会自动分析。

typedef -就是类型重命名


static—— 静态

三种用法:

  修饰局部变量

  修饰全局变量

  修饰函数

这里更加直观的表现了static的作用,上下图可以比较的进行分析:

本质就是内存。

在内存上,存在着三个部分,栈区,堆区,静态区:

注意:这里写的是static修饰局部变量

普通的局部变量是放在栈区上的,这种局部变量进入作用域创建,出了作用域释放。

但是局部变量杯static修饰后,这种变量就放在静态区,放在静态区的变量,创建好后,直到程序结束才释放。

总结:

       static的修饰改变了局部变量的存储位置,因为存储位置的差异,使得执行效果不一样。

     放在静态区的数据创建后指导程序结束才释放。

当切记,不会影响作用域。只是生命周期发生了变化。

下面再此的基础上,再次进行探讨

static修饰全局变量

上面引起不能用其他源文件中的变量的原因如下:


链接属性问题-static

全局变量本省是具有外部连接属性的

在A文件中定义的变量,在B文件中可以通过(链接)使用

但是如果全局变量被static修饰,这个外部链接属性就变成了

内部链接属性,这个全局变量只能在自己所在的源文件内部使用

static 的修饰,会把外部链接属性变成内部链接属性,最终使得全局变量的作用域变小

在这个补充一个知识,如dog.c文件 _经过   编译  链接 后就变成了,可执行文件  .exe

只有全局变量才讲链接属性。


#define宏的定义

上次简单的讲解一下#define

是这次讲解一下 ,有关于#define  宏的运用如下:


      指针(即地址)

        这里浅浅的讲解一下:

        首先要理解内存

        内存是计算机上的一种存储空间

        

        程序运行的时候会载入内存

        程序中如果有数据需要存储也会申请内存空间

  1. 指针变量:

                    指向地址(指针)的变量。

原理:


上面的知识有的相关部分,我都只是简单的提一下,在后续的文章中,在进行详细的相关知识讲解。

如有问题,望能指出,评论区交流。

  • 57
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值