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

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次方。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值