C语言选择语句,循环语句,函数,数组,操作符的初步认识

1.选择语句与循环语句

这两个我们在高中阶段就有初步的认识,便不多赘述,毕竟只是初步了解一下。

放两个例子

选择语句

 循环语句

2.函数

函数我们接触到的很多,我们做题时就用的f(x) 便是一个函数,我们在编程时,可以使用函数来减少代码量,防止代码冗余。

倘若我们要使用函数,我们要先给函数一个参数,等我们之后要使用时,只需要将数据代入参数即可。

 这是一个简单的加法计算,我们用这几行代码就可以实现,现在我们引入函数,使用函数来计算。

如图,这样我们就用函数解决了我们的问题。唉?这代码的行数明明变长了,还不如我之前那一个呢,为什么还要用函数呢?

之前已经提到,函数可以防止代码冗余,一旦我们在前面引入了一个函数,那么如果后面我们还要用这个的话,直接使用这个函数就可以,不必再引各种变量来计算了。

3.数组

之前的文章已经提到过数组,数组就是一组相同类型的元素集合,

我们引入数组时,使用的语法是

类型 数组名[常数]={元素}

比如

int arr[10]={1,2,3,4,5,6,7}
char ch[3]={'a','b','c'}

中括号是下标引用操作符,后面会讲到的,中括号里面的数字是下标,表示该数组的元素数目,上面的那个数组中元素并没有10个,这种情况称为不完全初始化,后面多出来的默认为0。

 数组是通过下标来访问的

比如arr[6],就是访问该数组的第六个元素。

4.操作符(划重点)

算术操作符

就是我们进行计算时所用的运算符号,不过因为人类语言与计算机语言不同,两者之间有一定差别。

+,-,*,/,%

+就是加,-就是减,有差别的是乘除。

我们用*表示乘号,用/表示除号

对于除号的使用

int a=10/4;
printf("%d\n",a)

此时输出的结果是什么?

显然是2,无法输出我们想要的2.5,那是因为整型与浮点型选择的原因吗?

 仍旧是2,这是因为默认的,如果/两端的数字都是整型,那么他就进行整型除法 ,只要有一个是小数,就进行浮点型除法,我们把4改为4.0

这样就得到我们想要的结果了。

这里的%是取模,也叫取余,就像上面的计算一样,我们使用%,最后输出的结果是10除以4的余数。

移位操作符 

<<这叫左移操作符,箭头指儿就向哪里移

>>右移操作符

移位操作符移动的是二进制位,且移动的是整个二进制数序列

int a=2;
int b=a<<1;
printf("%d\n",b);
return 0;

如上代码段,最终输出的会是多少?

 是4,为什么呢?

前面已经说过,移位移动的是二进制位,2的二进制是10,整型有4个字节共32个比特位,也就是说,00000000000000000000000000000010这才是2的真正的二进制序列,整体向左移位,最左边多出来一个0,放在最右边空出来的,于是序列就成了

00000000000000000000000000000100

也就是4

位操作符

位操作符有&,|,^三种,分别叫做按位与,按位或,按位异或

赋值操作符

赋值操作符有

=  +=   -=    *=     /=     &=   ^=    |=    >>=   <<=

如何使用?

举个例子

int a=2;
a=a+6;
int a=2;
a+=6;

这两段代码是等价的。

单目操作符

首先我们了解一下什么是单目。

我们常见的2+3,+两边有两个操作数,于是加号就是双目操作符,以此类推,有一个操作数的就是单目操作符。

!的作用是让逻辑反操作

我们要知道,0为假,非零为真,而!就可以让假成真,真成假,

 此时输出的是零,2为真,逻辑反操作之后就变成了0,那么如果a=0时,结果如何?

 结果是1,1为真,真的有很多,1235478,都是真,这里只输出一个1知道是真即可。

但这个不是!的真正用法,

if(a)//如果a为真,做事
{ 
}


if(!a)//如果a为假,做事
{
}

往往是这么用的。

-为负值,+为正值

&取地址

sizeof这个我们之前也讲过,用于计算类型或变量的长度,单位字节

注意,sizeof不是函数,而是操作符,函数后面的括号不能去掉,而他后面的括号在某些情况下可以去,

int a=10;
printf("%d\n",sizeof(int))
printf("%d\n",sizeof a )

两个打印函数输出的结果是一样的,这就说明了sizeof是操作符而不是函数。

~是对一个数的二进制按位取反

按位取反就是让整个二进制序列所有的1和0互换,1变成0,0变成1,

int a=0;
printf("%d\n",~a);

 这段代码最终输出的结果是-1.

0对应的二进制序列是

00000000000000000000000000000000

按位取反后就成了

1111111111111111111111111111111111111

此时对应的数就是-1,

首位是1,对应负号,后面的是1,所以是-1。

整数在内存中存储的是补码。

什么是补码?

一个整数的二进制表示有三种

原码:就是这个数所对应的二进制序列

反码:符号位不变,也就是首位不变,其余是有效位,全部取反

补码:反码加一

比如说-1

他的原码是10000000000000000000000000000001

反码是除了符号位,其他取反,就是11111111111111111111111111111110

补码是反码再加1,就是11111111111111111111111111111111

--前置减,后置减

++前置加,后置加

前置与后置的运算不一样

int a=10;
int b=++a;
printf("%d\n",a);
printf("%d\n",b);
int a=10;
int b=a++;
printf("%d\n",a);
printf("%d\n",b);

两者输出的结果不一样,前置是先++,后使用,后置是先使用,后++

比如第一个,b=++a,先++,a变成11,再使用,将a的值赋给b,此时a=b=11,

第二个,b=a++,先使用,a赋值给b,再++,a变成11。

*是间接访问操作符(解引用操作符)

(类型)强制类型转换

int a=6.1;
printf("%d\n",a);

如上,这是错误的,无法运行,a为浮点型,而int为整型,此时我们可以用强制转换类型,

此时就强制a变为整型了。

关系操作符 

<

>

<=

>=

!=测试不相等

==测试相等

同样的,因为计算机语言的不同,这些符号与我们平常用的不同。

逻辑操作符

&&逻辑与(并且)

||逻辑或(或者)

用于描述是否满足条件的真假

他们与我们高中学习的q且p,q或p一样。

条件操作符

又可称为三目操作符。

形式为

exp1 ? exp2 : exp3

这里的exp为表达式的缩写

条件操作符的运算方式为

若exp1成立,则计算exp2,且整个式子最终结果就是exp2的结果

若exp1不成立,则计算exp3,且最终结果就是exp3的结果

 如图,我们要选出a,b之间较大的数,这样写很繁杂,如果使用条件操作符的话会好很多。

int main()
{
   int a=6,b=7,max;
   
   a>b ? max=a :max=b;
   
   printf("%d\n",max)

   return 0;
}

如上,同样也能获得较大值,并且代码行数不多,不显繁杂。

逗号操作符

其实就是用逗号隔开的若干个表达式

运算逻辑是从左向右依次计算,最终的结果就是最后一个算式的结果。

下标引用,函数调用和结构成员

[  ]数组的中括号就是这个

(  )我们所有使用的函数都要加一个括号,就是这个函数调用操作符

.

=========================================================================

第五天的笔记。

谨以纪念逝去的今天。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒世伞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值