当前位置:   article > 正文

C语言初学学习笔记四_line++

line++

hello!这里是C语言初学小白,接下来我会在这里继续分享我的C语言学习笔记。笔记不定时更新,感谢观看。我的学习笔记在前面几篇学习笔记知识点只是初略记录知识点,先把C语言的知识点都过一遍,后续会陆续详细的记录C语言知识点。

接下来了解选择语句和循环语句。这里只做了解,后续会详细讲。

选择语句

如果我现在要输入“要坚持每天打代码吗(0/1)?”0表示坚持,1表示放弃。在C语言中要如何描述呢?这里引用选择语句(if......else),要输入值引用scanf输入函数。如下图一是代码和结果图。==是等于的意思,=是赋值的意思。

循环语句

假设一直写有效代码写30000行,就可以拿到好offer,否则就要继续写代码。用循环语句怎么描述。这里我用的是while循环语句,其中++是自增的意思,line++ = line+1。

循环语句中除了while语句还有for语句,do......while语句,选择语句和循环语句后续会详细讲,这里只做简单了解。下面来讲的一个知识点是函数

函数

C语言中的函数和数学中函数的概念相似。例;数学中表示一个函数可以是f(x)=2*x+5,C语言中也可以表示相同概念f(x,y)=x+y,该函数表示的是两数相加的概念,也可以写成Add(x,y)=x+y。那我们要用函数的方式完成两数相加要怎么写呢?如下图,创建两个整型变量num1,num2,用scanf输入函数输入两个变量的值。其中的Add就相当于委托人,当输入两个值返回到Add,需要Add把两数相加,Add算完的结果返回到sum中。那么Add是怎么实现两数相加的呢?当我们把两个数传递给Add的时候就需要Add把两数接收,所以要在Add中分别创建两个整型x和y。得到x和y之后就把两数相加就可以了,算出值的时候返回总和z。因为z返回的是整型所以Add也要是整型。

数组 

之前在笔记三有提到过,数组是一组相同类型元素的集合。那现在假设要存1-10十个数字要怎么存储呢?如果只会用创建变量的方式就会很麻烦,我需要创建和定义十个变量。那我们用数组就会更方便一点。只需要创建数组“int arr[10]={1,2,3,4,5,6,7,8,9,10};"。那要创建字符数组要怎么创建?如图我创建了一个字符数组方括号里面有5个位置我只存了三个字符,像这样叫做不完全初始化,剩余的默认为0。我们来调试看一下。按f10调试代码,如果没用的话按住fn+f10,调试结果如图二。数组是用下标来访问的。在创建一个数组中,里面的每个元素都有一个下标与之相对应,第一个元素下标为 0。

图一

 图二

 现在想把1-10数字全部打印出来要怎么做?创建一个变量i,使用while循环语句,如下图。

 可以通过调试来观察打印过程,持续按f10调试。

操作符

算术操作符+ , -  ,* ,/ ,%(加,减,乘,除,模)

这里讲一下除号/的用法,假设计算9除2的值,可以看到结果为4,而不是4.5。如果假设a为浮点类型来看看打印结果。如下图二,可以看到结果不是4.5,那要怎么得到4.5呢?只要除号的两端有一个是小数得到的结果就是4.5。求9除2的模,如图四,%是取模的意思。

图一

 图二

 图三

 图四

移位操作符>>(右移)     << (左移)

下面我们来简单介绍左移操作符和右移操作符,左移操作符的用法:创建一个整型变量a,创建另一个整型b使得b的值为a左移一位的值,我们来看看打印结果。可以看到打印结果为4。注意:移位操作符移动的是二进制位。a是整型,整型是四个字节,一字节是八个比特位,所以a的二进制序列就有三十二位。所以2写成二进制是00000000 00000000 00000000 00000010,左移一位就是00000000 00000000 00000000 00000100,所以这里打印出来的就是4。右移操作符的使用后续讲解。

位操作符:& (按位与)、|(按位或) 、^(按位异或)

赋值操作符:=   +=   -=   *=   /=   &=   ^=   |=   >>=   <<=

单目操作符(指只有一个数的操作符):!逻辑操作符, -  负值, +  正值, &   取地址, sizeof   操作数的类型长度(以字节为单位), ~  对一个数的二进制按位取反, --  前置、后置--, ++  前置、后置++, *  间接访问操作符(解引用操作符), (类型)   强制类型转换。

简单的了解一下的意思 ,在C语言中,0表示假,非0为真。!是相反的意思,这里的a是10,就是真的意思,所以打印结果为假,就是0。那!在C语言中是怎么应用的?如下图二,就是!的应用情景。

图一

图二

讲一下sizeof的使用,这个操作符是用来计算类型或变量的大小。举个例子,打印整型的大小和打印整型变量的大小。打印结果都是4,因为a的类型是int,int创建了a。那sizeof后面的括号能不能省略?如下图二,可以看到是可以打印出来,说明了sizeof是一个操作符,不是函数,函数后面的括号不能省略。int两边的括号不能省略,语法不支持。当sizeof括号里是变量,括号可以省略,sizeof括号里是类型括号不能省。通常使用都不省略括号

图一

 图二

前面说sizeof可以计算变量的大小,sizeof还可以计算数组的大小。如下图一,计算一下数组arr的大小,可以看到打印结果为40。因为是10个元素,每个元素是一个int,一个元素是4个字节。所以就是10*4,就是40个字节。sizeof(arr[0])打印结果是4,arr[0]是元素的第一个元素。数组是用下标来访问的。如下图三,计算数组元素的方法。

图一

 图二

 图三

简单的介绍~的使用~是按照二进制位取反,就是把一个数中的所有二进制位中数字,1变成0,0变成1。数据(这里值整数)在内存中存储的是补码。一个整数的二进制表示有三种,原码、反码、补码。如下图一,整型a为0,写成二进制就是00000000000000000000000000000000三十二个0。0按位取反就是11111111111111111111111111111111。这里讲一下,比如这里有一个-1的数字,那-1的原码就是10000000000000000000000000000001,它的最高位是符号位,最高位1表示它是负数,后面的都是有效位。符号位不变,其他位按位取反得到的就是反码。-1的反码为11111111111111111111111111111110。反码的二进制加一得到的就是补码,所以-1的补码就是11111111111111111111111111111111。在内存中存储的是补码。上面讲的原码,反码,补码的计算是针对负数的。对于正整数,原码,反码,补码相同。那~a按位取反得到的值是内存的值就是补码,按%d的形式打印,打印出来的就是它的真实值,也就是原码。0按位取反的二进制序列最高位为1,说明是一个负值,补码反算出原码,就是减去1,符号位不变,其他位再按位取反。可以看出得到的原码就是-1的二进制序列。所以~a的打印结果就是-1。~按位取反是所有位都变包括符号位。

++和--的使用

前置++是先++后使用,后置++是先使用后++。(--同理)

 

 (类型)   强制类型转换

此处3.14为浮点数,此处(int)强制类型转换成整型。

 单目操作符中还有& 取地址 和 *  间接访问操作符(解引用操作符)后面再介绍。

关系操作符: >   >=   <   <=   !=(用于测试“不相等”)   ==(用于测试“相等”)

逻辑操作符:&&(逻辑与)   ||(逻辑或)

逻辑操作符像数学中的并且和或者的意思。如下图一,a为3,b为5,两者都为真,所以a&&b也为真。如下图二,a为3,b为0,一真一假所以a&&b为假。||两边只要有一真,就是真。

图一

图二

图三

条件操作符(三目操作符):exp1 ?exp2 : exp3

条件操作符的意思就是当exp1成立,exp2计算,整个表达式的结构是:exp2的结果;当exp1不成立,exp3计算,整个表达式的结构是:exp3的结果。如下图的例子,max = a > b ? a : b;的意思就与整个if......else结果相同。

逗号表达式(逗号隔开的一串表达式):exp1,exp2,exp3,....expN

逗号表达式,是从左向右依次计算的。整个表达式的结果是最后一个表达式的结果。

下标引用、函数调用和结构成员:[ ]   ( )   .   ->

在我们的数组引用的时候就需要用到下标引用操作符[ ],在我们调用函数的时候,函数后面的()就是函数调用操作符。剩下两个后面再来讲。

以上就是学习笔记四的全部内容,感谢观看。

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/228611
推荐阅读
相关标签
  

闽ICP备14008679号