栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

初探C语言(二)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初探C语言(二)

上一篇写到了转义字符,这一篇接着往下

目录

选择语句

循环语句

函数

数组

创建数组

访问数组

操作符

算数操作符

 移位操作符

位操作符

赋值操作符

逻辑操作符

单目操作符

关系操作符

条件操作符

关键字

typedef

static

结尾


 

选择语句

用于分类的情况,比如你的考试成绩,低于60不及格,60及以上及格

一般使用if语句实现

if语句的语法

if(条件1)

{

        语句1;

}

else if(条件2)

{

        语句2;

}

else

{

        语句3;

}

满足哪个括号的条件就进入对应的语句,语句只有一条时不需要“{}”

例:还是考试成绩

#include
int main()
{
    int a=0;
    printf("输入你的成绩n");
    scanf("%d",&a);
    if(a<60)
        printf("不及格n");
    else
        printf("及格n");
    return 0;
}

循环语句

用来执行一些重复的操作,比如求1+2+3+...+100的和

这个时候就需要循环语句来完成,当然你如果要创建100个变量再把他们加起来也没人拦着你

循环语句有三种

  • while循环
  • for循环
  • do...while循环

这里只介绍while循环,其它后续再介绍

while语句的语法

while(条件)

{

        语句;

}

满足条件进入循环,不满足不进入循环

例:

 

函数

C语言中的函数与数学上的函数不同,C语言中的函数指程序中的某部分代码,负责完成某项特定任务,具备相对的独立性。

函数可分为库函数和自定义函数,库函数像strlen、printf等,在使用时需要引用相应的头文件,自定义函数就是自己定义的函数

一般自定义函数包含以下几点:返回值、函数名称、函数形参;通常函数在main()前定义,也可在main()函数后定义,但在前面需要进行声明

数组

数组就是一组相同类型的元素的集合,数组的存在就是用来存放元素过多的数据,这里简单介绍数组的操作

创建数组
int arr[5]={2,6,4,7,9};

int表示数组类型,[5]表示可存放的元素的个数,[]内只能写入常量表达式

访问数组

数组里的每一个元素都有对应的下标,下标从0开始,访问数组就是通过下标来访问

上述数组的下标

数组元素26479
下标01234

如果打印元素6

printf("%d",arr[1]);

操作符

C语言中有很多操作符,这里也是简单介绍,不过多深入

算数操作符

除四则运算外还有取模操作符“%”

具体取模操作符的用法:5%2,得到的是5/2的余数,结果为1

关于操作符“/”还有一点,我们都知道7/2=3.5,但在C语言中有一点不同

虽然数据类型和打印的格式都没有问题,但结果却是3,为什么?

因为在C语言中操作符“/”要想得到小数,除数和被除数至少要有一个写成小数的形式,所以将7/2改成7.0/2或7/2.0即可,你要愿意也可以两个都改

那现在还有一个问题,打印的结果后面那么多0看着不舒服,我只想打印3.5 怎么办

这个也好办,在lf和%之间插入一个小数即可,小数点前的数字指定变量的总长度,小数点后的数字指定小数位数

 移位操作符

位指的是二进制位,信息在计算机中是以二进制储存的,移位操作符可将二级制位进行移动

<<为左移,>>为右移

比如说下面的代码:

int a=1;
int b=a<<1;

 int在内存中占4个字节,所以int a在内存的二进制储存:

00000000000000000000000000000001

将a的二进制左移一位后的b:

00000000000000000000000000000010

所以b表示的就是2

位操作符

位同样指二进制位,共三个操作符

&:按位与;二进制相同位都为1时结果为1,其它情况下为0

|:按位或;二进制相同位都为0时结果为0,其它情况下为1

^:按位异或;二进制相同位相同为0,不同为1

以上述的1和2举例:

1的二级制位:00000000000000000000000000000001

2的二进制位:00000000000000000000000000000010

1&2结果为0,1|2结果为3,1^2结果为3

关于异或还有两点:异或操作符满足数学上的交换律和结合律 ;

                                0^n=n,n^n=0

利用好异或的性质在编程时会有帮助,比如:交换两个变量int a,int b的值

一般的思路是新建一个变量int i,然后使 i=a, a=b, b=i

 使用异或的话则完全不需要另外的空间

 我们来分析一下程序的运行时a和b各自的值

这样也实现了变量的值的交换

赋值操作符

这类操作符一般都是符合赋值符,如:+=、*=等

以+=为例

a+=1和a=a+1是等效的,其它的赋值操作符同理

逻辑操作符

&&:逻辑与

||:逻辑或

定义就是数学上的逻辑与和逻辑或

单目操作符

!:逻辑反操作

~:按二进制位取反

&:取地址,指针常用

sizeof:求操作数的类型长度(单位:字节)

*:解引用操作符,指针常用

++/--:分前置和后置

(类型):强制转换数据类型

这里需要说明一下++和--的前置和后置

以++为例:

首先,++的作用是使变量结果+1,之所以分前置和后置是因为运算顺序有所不同

简单来说:前置是先进行计算,后使用;后置是先使用,后计算

如图:

a和b的初始值都为5,因为前置++是先进行运算,所以结果为6,后置++ 后进行运算,结果为5

这是二者的区别

关系操作符

一般用于条件判断

>、<、>=、<=、!=(不等于)、==(等于)

条件操作符

条件?语句1:语句2

表达式满足条件执行语句1,不满足时执行语句2,当判断只有两种情况时使用

关键字

C语言有很多关键字,比如:int short char while等

需要注意的是,关键字不能自己创建,也不能做变量名,你如果定义一个变量为int while,程序肯定会报错。还有,在常量提过的#define不是关键字,define是预处理指令

这里介绍几个一下的关键字

typedef

类型重命名

简单来讲就是将数据类型另外定一个别名,在后续使用时就可以使用这个别名

static

用来修饰局部变量、全局变量和函数

  • 修饰局部变量

之前在介绍局部变量时有提过局部变量的生命周期

 图中a是局部变量,所以a的生命周期在出函数时销毁,如果static修饰局部变量

直观上看a的生命周期延长了,上一次循环的a被保留了下来。static是如何实现的?这要从内存说起

内存上有三个区,栈区、堆区和静态区,如下图

a开始是在栈区储存,而static修饰后,a就变成了静态变量,此时a存储的地方发生变化,所以生命周期变长

  • 修饰全局变量和函数

修饰全局变量和函数都会使其作用域变小。

之前介绍全局变量的时候说过全局变量的作用域是整个工程,那是因为全局变量具有外部链接属性,所以在源文件a中使用源文件b的全局变量时只需在a中使用extern声明即可,函数同样具有外部链接属性。但static修饰后,外部链接属性变成内部链接属性,这时全局变量和函数便只能在其所在的源文件内使用,其它源文件即使使用extern声明也无法使用

结尾

本篇文章就介绍到此,文笔有限,不足之处欢迎指正

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348232.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号