您的位置:首页 > 其它

c 语言笔记.函数和位运算

2015-10-02 17:56 267 查看
C语言函数

定义:

返回值类型 +函数名(形式参数类型 参数名,...........){

                   程序代码;

                   return 返回值

}

调用:

函数名(实际参数1,实际参数2,............);

函数特点:

1.返回值不定义的情况下,默认为int类型,如果不需要返回结果可使用void(return可省略);

2.

函数的声明:

格式:

返回值 函数名(参数类型:参数名........);

1.仅声明可以不创建函数,但要调用函数之前必须定义函数;

2.声明可以只有参数类型,省略参数名如:int add(int);

3.函数使用前应声明返回值类型,不声明就默认返回值类型为int类型;

4.声明函数必须放在本函数调用之前,不能放在自己函数里面;

头文件的定义及应用:

定义:新建一个以.h结尾的文件,把需要用到的函数声明放到该文件中;

引用:自定义的文件:#include “文件名.h”

           编译库中的头文件:#include<stdio.h>

应用场合:当程序需要多个C文件组成的时候

特点:

1.在头文件中只做声明,不做具体实现;

2.在头文件有声明只能确保编译成功,不能确保链接成功;

3.自定义的头文件引用时必须有路径。

其中#include的注意点:

1.可以定义在函数内部也可以定义在函数外部;

2.以#开头,后面不能加分号“;”;

3.必须包含路径.省略或./表示当前路径、/表示绝对路径、../表示上一层路径;

4.必须定义使用之前,否则可以编译不能链接成功。

函数总结:

1.函数返回值不一定要有,有返回值的函数也不一定要有return;

2.函数结束的标志是函数最外层的花括符;没有返回值类型可以不要return;例如:

void add( ){

       return;//这个return就表示函数结束;

}

注意无返回值函数void函数中return后面不能加值;

3.函数不能重复定义;

4.形参在函数内部不能重复定义;

进制

1.进制书写规范:

二进制以0B或0b开头、八进制以0开头、十进制直接书写、十六进制以0X或0x开头,不区分大小写;

2.进制的输出打印:

%o:表示输出不带符号八进制整数;

%x:表示输出不带符号十六进制整数;

%d:表示输出有符号位十进制整数;

%u:表示输出不带符号十进制整数;

二进制不可以直接输出;

补充定义:

有符号数:既能表示正数又能表示负数以及零的数;

无符号数:表示正数以及零的数。

进制修饰符:

1.类型说明符存在的原因是为了节省内存空间,不同的需求的值应该提供不同的存储大小的存储单元;

2.short类型在16、32、64位编译器下都是2个字节,long long 在16、32、64位编译器下都是8个字节;

位运算

定义:直接对整数在内存中的二进制位进行操作的方法(只能操作整形数据)

实现功能:直接通过操作二进制位实现高效运算;

实现类型:

&与运算:对应两个二进位同时为1则为真;反之为假,即同真为真,有假为假;

应用:

1.取一个数中的某些指定位;

例如,有一个整数a(2个字节)想要其中的低字节,只需

将a与(377)按位与即可;

|或运算:对应两个二进位同时为0则为假,反之为真。即同假为假,有真为真;

应用:

1.将整数对应的二进制位中的某些位重置为1;

例如:将八进制数060|017可以将低4位全部重置为1;

^异或运算:对应的两个二进位相同为0,不同为1;

应用:

1.相同整数异或结果为0;

2.一个数与另一个数异或两次结果为它本身;

3.异或与顺序无关;

4.是特定位翻转;

假设0111 1010,想使其低四位翻转,即1变为0,0变为1,将它和0000 1111进行异或运算即可

5.与0相^,保留原值;

6.交换两个值,不需要临时变量。

假如int  a = 3,b = 4.交换两值的语句为:

a = a ^ b;

b = b ^ a;

a = a ^ b;

即可完成a,b两个数值的交换;

~取反运算:对整数的各个二进位进行取反,包括符号位;(真假互换)

<<左移运算:把整数的各二进位全部左移n位,高位丢弃,低位补0;

规则:左移n位其实就是将整数乘以2的n次方,符号位除外,

>>右移运算:把整数的各二进位全部右移n位,符号位不变,高位的空缺是正数补0,是负数是补0还是补1取决于编译系统的规定;右移n位其实就是除以2的n次方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: