Bootstrap

C语言总结

三种命令行的转换:

常用的ASCII值:

'A'=65

'a'=97

'space'=32

'0'=48

'1'=49

'/n'=10

 十六进制数转换为二进制数的步骤:每一位十六进制数,转换为四位二进制数。

二进制转换成十六进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一组。
组分好以后,对照二进制与十六进制数的对应关系,将四位二进制按权相加,得到的数就是一位十六进制数,然后按顺序排列,小数点的位置不变,最后得到的就是十六进制数。

局部变量不给初值,打印为随机

 

 a=0是在while循环里面,执行一次销毁一次

a的值为1.2.3.4,默认为0

static:

static变量称为静态存储类型的变量,既可以在函数体内,也可在函数体外说明。(默认是0)局部变量使用static修饰,有以下特点:在内存中以固定地址存放的,而不是以堆栈方式存放只要程序没结束,就不会随着说明它的程序段的结束而消失,它下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用存入的数值

extern:
当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可引用这个变量。
extern称为外部参照引用型,使用extern说明的变量是想引用在其它文件中函数体外部说明的变量。
static修饰的全部变量,其它文件无法使用

^表示相异为1

在位运算中,某操作数右移3位,其结果相当于操作数除以8

==表示判断,结果为bool值

 i++ 即后加加,原理是:先自增,然后返回自增之前的值
++i 即前加加,原理是:先自增,然后返回自增之后的值

continue语句与break语句使用场合类似,continue语句是不可以在单独的switch语句中使用,但可以在一个循环内的switch语句中使用。switch是属于判断选择代码,是用于控制流程流转,而无法像for、do…while、while一样实现循环。所以在switch中无法使用continue实现结束。

死循环:

goto死循环;loop: 和goto loop,loop中没有条件限制会出现死循环;

 break死循环;break只能破坏一层循环,多层嵌套的的话也是死循环。

 

 

 %s结束的标志是‘/n’

字符输入:

gets()与scanf()在字符串输入的使用差异:

gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。

也就是说,gets()函数读取到\n(输入的回车)是会停止读取,但是它不会把\n包含到字符串里面去。然而,和它配合使用的puts函数,却在输出字符串的时候自动换行

有两个字符数组 a、b,则以下正确的输入语句是 A.scanf(“%s%s”,&a,&b);B.gets(a); gets(b);

对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

所以“A.scanf("%s%s",&a,&b)”中,变量a、b多携带了“&”操作符,是错误的。而对于gets()函数的使用,其中参数为字符串变量(字符串数组名或字符串指针),所以“B.gets(a); gets(b);”是正确的用法。

字符串常量没办法被改变,所以只能存储在字符数组里

 

注:不同类型的指针做运算毫无意义。

 如果指针为空,那么存的是0号内存单元。

NULL其实是个宏定义  

#define null 0

数据的输入然后输出: 

利用指针可以简化程序:

数组元素倒序输出:

利用行指针(数组指针)遍历整个二维数组:

 字符的打印:

 

字符串常量,全局变量,static静态变量。 他们三个是程序结束的时候释放内存。

const总结:

         const int a;                // 指向const int; a不能被修改
        int const a;                // 指向const int; a不能被修改
        const int *a;               // 指向const int的指针; a可以被修改, *a不能被修改
        int const *a;               // 指向const int的指针; a可以被修改, *a不能被修改
        int* const a;               // 指向int的指针; a不能被修改, *a可以被修改
        int const * const a;    // 指向const对象的const int指针; a不能被修改, *a不能被修改
        const int * const a;    // 指向const对象的const int指针; a不能被修改, *a不能被修改

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;