C语言回顾-函数和位运算
1.函数的概述
功能独立的代码块
C语言由若干函数组成
1)从定义分,库函数和用户定义函数两种
2)从返回值分,有返回值函数和无返回值函数
3)从参数分,无参函数和有参函数
2.形参和实参
1)形参定义后,并不会立即分配存储空间,在函数调用的时候才会真正的分配存储空间
2)如果是多个参数,可以用逗号分隔
3)形参的类型可以不相同
4)函数内部不能定义与形参同名的变量
3.实参和形参的参数传递
1)调用函数的时候,实参的值时一个已经确定的值
2)把实参的值,赋值给形参
3)实参和形参的个数、类型要一致
如果类型不一致,会造成精度丢失
4)形参的值在函数内部可以被修改,但是不会影响主调函数中实参的数据
4.函数先声明再调用
5.递归函数,放在栈中,所以很占用内存空间
6.命令行:
cc -c xxx.c//编译
cc xxx.o//链接
./a.out//执行
7.文件包含指令#include,是一个预处理指令,作用是把要包含的文件的内容拷贝到当前书写include的地方
<>表示包含系统的文件
""表示包含自己的文件
include命令的搜索顺序:当前目录->子目录->编译器目录(
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include
)->mac系统的include目录,如果没有的话,报错
如果修改了编译器的include中的自定义文件后,运行后发现没用改变
1)需要clean项目
2)手动清理
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include目录下的文件
8.C语言模块化编程
9.进制
数位:从右到左依次是0、1、2、3。。。
基数:几进制基数就是几
位权:数码*基数^数位,如013,第1位的位权是1*8^1=8
位权相加就是把数转换成十进制后的值
10进制-》2进制:除2取余,结果倒序
2进制-》10进制:位权相加
2进制-》16进制:整数部分从右到左,4合一;小数部分,从左向右,4合一
16进制-》2进制:1分4
机器数:二进制数最高位代表符号
真值:机器数不带符号叫真值
原码(-128---》127)、反码、补码(-128在计算机中是1000 0000 0000 0000 0000 0000 0000 0000)
正数的原码、反码、补码相同
负数的反码是符号位不变,其余各位取反,补码是反码的基础上+1
计算机中存的是补码
10.位运算(不考虑符号位)
&按位与
|按位或
~按位取反,得到补码(如果是负的再取反加一转成原码)
^按位异或,相同为0,不同为1
<<左移,所有位全部向左移动n位,高位丢弃,低位补0;向左移n位,相当与乘以2的n次方,负数左移会变正数
>>右移,移出去的部分舍弃,高位要补符号位;向右移n位,相当与除以2的n次方,结果是整数部分,右移不会改变正负性
11.内存分配地址由高到低分配
%p输出变量的地址
C语言回顾-函数和位运算的更多相关文章
- C语言学习笔记之位运算求余
我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注意:该方法只对除数是2的N次方幂时才有效. ...
- Python语言中的按位运算
(转)位操作是程序设计中对位模式或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加 ...
- c语言小技巧:C语言学习笔记之位运算求余
我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不 允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注 意:该方法只对除数是2的N次方幂时才有效 ...
- C语言面试题分类->位运算
1.不用临时变量交换两个整数. a = a ^ b; b = a ^ b; a = a ^ b; 2.实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如9的二进制是1001,则输出2. i ...
- C语言中的重要位运算
1. 常用的等式 :-n = ~(n-1) = ~n + 1. 2. 获取整数n的人进制形式中的最后1个,也就是只保留最后一个1,其余的全部置位0,如1000 0011 ---> 0000 0 ...
- javascript位运算
javascript作为一门高级语言,他尽量让开发人员减少思考底层的硬件工作原理,而将精力集中在逻辑开发的层面.不过,不论这门语言多么高级,我们必须知道数据依然以bits的形式存储,有时候我们会直接与 ...
- NumPy 位运算
NumPy 位运算 NumPy "bitwise_" 开头的函数是位运算函数. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操作 b ...
- Numpy | 13 位运算
NumPy "bitwise_" 开头的函数是位运算函数.本章都是按二进制来操作的. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操 ...
- 10、numpy——位运算
NumPy 位运算 NumPy "bitwise_" 开头的函数是位运算函数. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操作 b ...
随机推荐
- [转]AS3的垃圾回收
GC和内存泄露无关 垃圾回收,这次是一个被无数人讨论过的传统话题. Action Script使用的是和Java相似的内存管理机制,并不会即时回收废弃对象的内存,而是在特定时间统一执行一次GC(Gab ...
- ID3算法
转自:http://blog.sina.com.cn/s/blog_6e85bf420100ohma.html 信息熵就是一组数据包含的信息,概率的度量.一组数据越有序信息熵也就越低,极端时如果一组数 ...
- query 的list()和iterator()区别
区别: 1.返回的类型不一样,list返回List,iterate返回iterator. 2.查询策略不同.(获取数据的方式不一样,list会直接查询数据库,iterate会先到数据库中获取id,然后 ...
- WinForm 窗体属性
WinForm - C/S 客户端 B/S 网页端 客户端应用程序 - 是需要安装在用户电脑上才可以使用的程序特点:不需要联网也可以打开使用部分功能但是现在的情况是许多功能依然需要互联网的支持 ...
- CentOs5.8下安装Oracle12C
12C安装向导: http://docs.oracle.com/database/121/LTDQI/toc.htm 12C下载地址: http://www.oracle.com/technetwor ...
- Java面试题大全(一)
JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分, ...
- python 语料处理(从文件夹中读取文件夹中文件,分词,去停用词,去单个字)
# -*- coding:utf8 -*- import os import jieba def splitSentence(inputFile): fin = open(inputFile, 'r' ...
- 任务中使用wget,不保存文件
*/20 * * * * wget --output-document=/dev/null http://www.domain.com 使用wget每过20分钟访问一次,不保存访问文件内容
- javascript小实例,多种方法实现数组去重问题
废话不多说,直接拿干货! 先说说这个实例的要求:写一个方法实现数组的去重.(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考): 先 ...
- reporting service & wpf
WPF做Windows程序界面很好很强大,RDLC做报表免费又好用,如何将两者强强联合呢? 方法1: 可以直接在WPF项目中加入一个WinForm窗体,在这个窗体上进行报表操作,与一般的Wi ...