标C的学习史—重温基础【4】——函数,标准c,进制转换,运算符

补上前面落下的内容:
C语言程序的绝大部分应该记录在以.c作为扩展名的文件里,这种文件叫做C语言的源文件。c语言中还包括以.h为扩展名的文件,这种文件叫做头文件。C语言程序中只包括这两种文件。
C语言可以直接使用数字和加减乘除符号(乘号用*,除号用/)。C语言中每个计算步骤都必须以分号;结尾,每个以分号结尾的计算步骤叫做一条语句。
C语言中绝大多数语句都应该写在大括号里面。
C语言程序中的大括号可以表示一个函数(函数可以看作一组语句),函数内部的语句一定按照从上到下执行。C语言程序中一定不可以没有函数,而且可以有很多不同函数。不同的函数一般以名字的不同区分。
在终端中,“man 函数名”,可以查看函数的内容,如何实现。
C语言程序中必须包含叫main的函数,它叫做主函数。
函数结束时可以留下一个数字,这个数字叫函数的返回值,函数可以用这个返回值表示工作结果,主函数应该有意个返回值,如果这个数字为0;则表示程序员希望计算机认为程序中正常结束。如果是别的数字,则是程序员希望计算机认为程序出错了。
C语言程序中通常包含预处理指令,预处理指令一定是以#作为开头,并且不以分号为结尾。标准C语言中的预处理指令会把源文件里的内容替换成其他内容。
#include预处理指令可以把一个头文件里的内容包含到当前文件中。这个指令中需要使用相对路径表示被包含的头文件的位置,把相对路径包含在一对<>表示依次采用系统中的准备好的一组目录作为起点;把相对路径包含在“”表示首先把当前文件所在目录作为起点使用,然后再把系统预先准备好的目录作为起点使用。
编译器可以把源文件翻译成计算机能认识的格式。gcc是linux系统里C语言程序的编译器,MinGW是windows下的gcc。
linux系统下C语言程序开发的基本过程:1使用vi编写源文件;2使用gcc把所有源文件翻译成可执行文件(编译);3使用./a.out执行得到的新文件。
gcc编译器工作过程:1处理所有预处理指令;2把第一步处理结果翻译成计算机认识的格式(整个过程叫做编译,第二步也叫做编译);3把第二步处理结果合并成执行文件(链接)。
gcc选项介绍:       
-E        只处理所有预处理指令。
-c        只完成预处理和编译指令,得到以.o为扩展名的目标文件。
-o        用来指定得到的执行文件的名称。gcc ***.c  -o   *****。
-std=c89/-std=c99,用以支持c89/c99

C语言提供一组标准函数,每个标准函数用以解决一个常见的问题,不同标准函数名称不同,可以在程序中编写函数调用语句使用标准函数。
程序中使用的所有数字必须记录在内存里,计算机内存由大量字节组成,每个字节可以单独记录一个数字。每个字节有一个编号,不同字节编号不同,编号叫做字节的地址,所有字节的地址都是从0开始往上递增。内存中几个相邻的字节可以合成一个整体,用来记录一个数字。整体的地址是内部所有字节中地址中最小的那一个。C语言中可以使用变量用来表示那个整体,对变量的操作就是对整体的操作。变量的声明,就是让计算机为程序分配一个整体存储区。变量有两个使用方法,放一个数字,获取一个数字。变量名既可以代表存储区整体,也可以代表里面的数字,由环境决定。
C语言中允许程序员扩展出新的数据类型。这些新的数据类型统称为符合数据类型。符合数据类型,先定义,再使用。
布尔类型是c99新引入的数据类型,只包含真(1)假(0)。任何一个整数都可以当作布尔值使用,0当布尔值时为假,其他任何值都为真。
占位符:%c   %hd  %hu   %ld   %lu    %d,%u    %f  %lf   %g   %lg       %o     %x    %X

进制转换:
十进制正整数转换二进制:除以2取余,从小向上依次取余数读出的二进制数即为转换后的二进制数。
十进制负整数转换二进制:先将负数对应的正整数转换为二进制,然后对二进制按位取反后加1即可。
二进制正数转换为十进制:2的位数-1次方的和。
二进制负数转换为十进制:按位取反后加1,即可得到对应的整数,然后转换为十进制数,加上负号即可。
不要在一条语句中对一个变量多次进行自加或自减,结果不一定。
数组可以作为形式参数,仅仅把形式参数写成数组声明的格式,但是真正的形式参数不是数组。
数组形式参数中包含的所有存储区不是被调函数提供的。使用数组函数做形式参数可以让被调函数使用其他函数提供的存储区。利用数组形式参数可以实现两个方向的数据传递,我们把这种参数叫输入输出参数

ctrl +d:终止当前的命令
当形参是数组时,不能直接传递一个参数,而是采用两个参数传递,第一个参数是不指定长度的数组,第二个参数是数组的长度。

break:按条件退出循环。
continue:终止本次循环,并不会退出循环。
C语言函数参数个数是不确定的,这种参数叫变长参数。变长参数不能在编写函数的时候命名。被调用函数里需要使用特殊的方法获得没有命名的参数。
return 关键字随时可以结束函数的执行;exit标准函数,可以随时结束整个程序,为了使用这个标准函数,需要包含头文件stdlib.h,这个函数需要1个整数类型的实际参数,这个参数用来告诉计算机程序的结束方式,0表示正常结束,其他整数表示遇到问题。

逻辑操作符用编写逻辑表达式。逻辑表达式的计算结果一定是布尔值。!是一个单目逻辑操作符,他表示对布尔值求反。(真变假,假变真,)。双目逻辑操作符:==(等于),<(小于),>(大于),!=(不等于),<=(小于等于),>=(大于等于)。&&与;||或,
&&和||都具有短路特性:如果前一个逻辑表达式可以决定整个表达式的结果,则后一个逻辑表达式不计算。
位操作符可以直接操作二进制数位:~是一个单目操作符,他可以把二进制的每个数位取反(按位取反)。这个操作符写在一个数字前面。双目位操作符按位与(&),按位或(|),按位异或(^)他们可以把两个数字对应二进制数位上的内容进行计算。按位与(&)可以把对应二进制数位进行与计算。按位或(|)计算可以把对应二进制数位或计算。按位异或(^)计算可以把对应二进制数位抑或计算。移位操作可以把一个数字中所有二进制 数位统一向左或向右移动n个位置。<<向左移位操作,>>向右移位操作,操作符左边要进行移位的数字,右面要移动的数位。向左移位时空出来的位置一定是补0;对有符号类型数字进行右移时,左边空出来的位置补充符号位,无符号类型数字右移时左边空出来的位置补充0;一般情况下,向左移动n个位置相当于乘以2的n次方;向右移动n个位置,相当于除以2的n次方。
可以用%p占位符把地址数据打印在屏幕上,这时候要用取地址操作符&。
&也可以作为单目操作符,他可以根据地址数据,找到对应存储空间。他应该写在地址数据的前面。
三目操作符可以从两个计算规则中选择一个使用。格式:布尔值?公式一:公式二,布尔值为真,采用公式一,布尔值为假,采用公式二计算结果。
隐式转换:
强制类型转换:C语言程序中可以给数字指定一个类型。(要转换的类型名称)变量名。强制类型转换有可能造成数据丢失。类型转换不会修改存储区的内容,计算机会使用一个新的存储区来记录转换后的数字,然后用这个新的存储区做其他计算。



分支语句可以从几组语句中选择一组执行,if    if/if  else      switch   case     default语句处理其他情况
for循环:c99规范中允许在小括号里临时声明循环变量,这个循环变量只允许在循环里使用,在循环结束后就不能使用了。可以在循环中使用break;语句,立刻结束循环的执行。一旦执行了break;语句后的一切语句都不再执行,循环变量不再变化。break;语句结束后循环变量在范围内,正常结束后循环变量在范围外。
可以在循环中使用continue语句直接跳到循环的末尾,中间的所有语句都不再执行了。
如果编写循环的时候无法计算出循环执行的次数,就可以编写一个死循环,再循环中编写分支和break;结束循环。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值