大家好,今天我想分享一下我对于C语言中的数组,函数,操作符的一些认识。(比较基础的认识)。
数组
数组故名思义就是一堆相同类型元素的集合,通常用于需要初始化的变量过多时简化操作。
数组的声明和初始化形式一般为:int 数组名[数组元素个数]={数组元素}
这里有几个值得注意的点:
1.数组的名字可以随便命名
2.数组元素的个数可以不说明而通过初始化的方式确定
3.数组元素可以不列举完,比如说 int arr[10]={1};此时后面的元素默认为零,但这样就得说明有多少个元素了
4.访问数组要通过数组的下标,数组的下标从零开始,一直到len(arr)-1。不能超过,否则会警告访问越界。
5.可以通过循环的方式来遍历数组 如
int i=0;
while (i<=9)
{
i= i++;
printf ("%d\n",arr[i];
}
函数
函数其实是一段能够执行特定功能的代码块,就好像把某一个技能赋予某一个人,在之后需要用这个技能时我们只需要叫这个人就行了,因此我们的main函数会显得更加简洁。那么函数是怎样的呢?
首先,函数有两种类型,一种是库函数,也就是自带的,你直接调用就行。另一种是自定义函数,需要我们赋予它功能。我们主要看一下自定义函数。
无论是自定义函数还是库函数都有着一样的结构,即 返回值类型+函数名+(形式参数)然后是熟悉的大括号{
这里是函数体
return 返回值;(不要忘记带分号)
}
上面说了如何定义函数,这里讲一下如何调用函数。一般形式为
某一个变量 = 函数名 (实参) 还是直接上图吧。
这里的a,b就是实参,与上图的x,y和num1,num2相呼应。
定义了函数以后就能直接用,又方便又好看,贼爽。
操作符
这部分内容贼多,慢慢来,慢慢记,淦!!!
首先是来自我们来自数学世界的算术运算符,它们分别是
+ 加 -减 *乘 /除 %除余(取模) 加减乘除咱就不说了,欸不对,除咱还是要说一下的。
关于除法有一个问题,请看下面这段代码
猜猜会输出啥,3.5吗?
为啥7/2会输出3呢?
这是因为7/2 除号两边都是整数,因此这里是一个整型除法,int它也是个整型呀,你算出来一个浮点数硬要用整行变量来装,你让编译器怎么办,那它就只能输出3呀,所以这里会发生精度丢失。
那么有没有解决办法呢?有!!!上代码
首先是int改成double,用浮点类型打败“浮点数错误”,然后是格式化输出符改变,还有整型除法变成浮点型除法,然后我们就可以得到正确答案了呀。
关于取模%,其实就是求俩数相除的余数,直接上代码把
但是要注意取模只能用于整型,否则会报错。
移位操作符
这一部分现在就先初步认识一下,比较抽象,因为它会直接操作到二进制位上(难搞)
移位操作符有左移符<<和右移符>>
左移符表示将该数的二进制位整体向左移一定位数(移多少位由后面的数字决定)
右移符表示将该数的二进制位整体向右移一定位数(同上)
以3为例
因为int申请的内存为4个字节,也就是32个比特位,所以十进制3对应的二进制数字为
00000000000000000000000000000011 将其向右移一位得到:
00000000000000000000000000000110 再转化成十进制得到:6
位操作符
位操作符也能直操作到二进制位上
按位与& ; 按位异或^ ;按位或|;
按位与 :相同位均为1则为1,否则为0
按位或:只要有1就为1,否则为0
按位异或:对应二进制位相同为0,不同为1
以3和5为例
位操作符的具体用法以后再讲,现在只需要知道有一个这东西就行了。
赋值操作符
这一部分比较简单,主要就是简化了赋值的代码
主要有= ;+=;-=;*=;/=; &=;^=;|=;>>=;<<=;
以+=为例 :a+=1就是a=a+1,其余赋值操作符一样。