C语言学习日记DAY1

与世无争的帅哥 提交于 2020-02-27 02:39:49

C语言是面对过程的计算机编程语言,Java和C++是面对对象的编程语言。
主要编译器有:Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

C语言程序样本
#include <stdio.h>
int main()
{
printf(“hello bit\n”);
printf(“he he\n”);
return 0;
}
//解释:
//main函数是程序的入口
//一个工程中main函数有且仅有一个

数据类型
char 字符数据类型
short 短整型数据类型
int 整型数据类型
long 长整型数据类型
float 单精度浮点数
double双精度浮点数
C语言没有字符串类型,使用的是字符数组。
使用不同的数据类型是为了方便编程和管理,节省存储空间。

变量、常量
全局变量和局部变量:作用的作用域不同,全局变量的作用域是整个程序,局部变量的作用域是当前函数和循环。
局部变量和全局变量同名时局部变量优先级更高。

变量的生命周期
变量创建到销毁的时间段
1)局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。
2)全局变量的生命周期:整个程序的生命周期。

常量
C语言中常量分为以下几种情况:
字面常量
const修饰的常变量
#define定义的标识符常量
枚举常量

枚举变量、枚举常量
enum WEEKDAY{Monday,Tuesday,Wednesday};
enum WEEKDAY w;
称enum WEEKDAY为枚举类型,称w为枚举变量,称Monday等为枚举常量。

字符串+转义字符+注释
字符串
由双引号引起来的一串字符称为字符串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

转义字符
顾名思义转变意思。
常用的转义字符

注释
代码中又不需要的直接删除或者注释掉。
有难懂的部分注释掉。
注释的两种风格
C语言风格的注释:/* xxxxxxx */
C++风格的注释://xxxxxxx

循环语句
C语言实现循环的方法
while语句
for语句
do…while语句

函数
这是一串代码

将代码写成该函数

作用是能够简化代码,防止代码重复使用,将计算过程做成一个单独的函数,当需要使用时再引用。

数组
C语言中的数组: 一组相同类型元素的集合。

常用关键字

关键字typedef
顾名思义是类型定义,这里理解为类型重命名。
关键字static
在C语言中:static是用来修饰变量和函数的
static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。
但是对于c语言初学者,static由于使用灵活,并不容易掌握。
在程序中使用static
变量
1.局部变量
普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般不对普通局部变量进行初始化,也就是普通局部变量的值在初始时是不确定的,除非对其显式赋值。(自动变量)

普通局部变量存储于进程栈空间,使用完毕会立即释放。

静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。

变量在全局数据区分配内存空间;编译器自动对其初始化。

其作用域为局部作用域,当定义它的函数结束时,其作用域随之结束。
注:1.静态局部变量在函数内定义,但是不像自动变量那样当调用时就存在,退出时就消失。静态局部变量始终存在着,也就是说它的生存期是整个源程序。
2.虽然它的生存期是整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后,尽管该变量还继续存在,但是不能使用它。
3.根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用(尤其是短名全局变量的变量名污染很严重),因此仍以采用局部静态变量为宜。

简单说局部静态变量与全局变量最明显的区别是,全局变量在其定义以后所有的函数都能使用,但是静态局部变量只能在一个函数里面使用。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!