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语言回顾-函数和位运算的更多相关文章

  1. C语言学习笔记之位运算求余

    我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注意:该方法只对除数是2的N次方幂时才有效. ...

  2. Python语言中的按位运算

    (转)位操作是程序设计中对位模式或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加 ...

  3. c语言小技巧:C语言学习笔记之位运算求余

    我们都知道,求一个数被另一个数整除的余数,可以用求余运算符”%“,但是,如果不 允许使用求余运算符,又该怎么办呢?下面介绍一种方法,是通过位运算来求余,但是注 意:该方法只对除数是2的N次方幂时才有效 ...

  4. C语言面试题分类->位运算

    1.不用临时变量交换两个整数. a = a ^ b; b = a ^ b; a = a ^ b; 2.实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如9的二进制是1001,则输出2. i ...

  5. C语言中的重要位运算

    1. 常用的等式 :-n = ~(n-1) = ~n + 1. 2. 获取整数n的人进制形式中的最后1个,也就是只保留最后一个1,其余的全部置位0,如1000 0011 --->  0000 0 ...

  6. javascript位运算

    javascript作为一门高级语言,他尽量让开发人员减少思考底层的硬件工作原理,而将精力集中在逻辑开发的层面.不过,不论这门语言多么高级,我们必须知道数据依然以bits的形式存储,有时候我们会直接与 ...

  7. NumPy 位运算

    NumPy 位运算 NumPy "bitwise_" 开头的函数是位运算函数. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操作 b ...

  8. Numpy | 13 位运算

    NumPy "bitwise_" 开头的函数是位运算函数.本章都是按二进制来操作的. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操 ...

  9. 10、numpy——位运算

    NumPy 位运算 NumPy "bitwise_" 开头的函数是位运算函数. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操作 b ...

随机推荐

  1. lua语法备忘录

    1.三元表达式 a?b:c => a and b or c 2.循环数组 local keys = args.kvs:get_keys() local arr = xstring.split(k ...

  2. Xtrabackup2.3.4安装

    安装过程种有很多报错,这里我就不一一解释. wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.5/bin ...

  3. centos 安装haproxy 1.6.3

    yum install libtermcap-devel ncurses-devel libevent-devel readline-devel gcc gcc-c++ pcre pcre-devel ...

  4. BizTalk开发系列(七) Hello World2

    之前根据BizTalk的订阅原理,使用BizTalk管理控制台创建了第一个应用程序 Hello World.但是由于控制台的开发功能有限,绝大多数的BizTalk程序都是在集成开发环境Visual S ...

  5. JAVA程序设计 实验一

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  6. oracle 11g 通过在线重定义方式修改表结构

    今天因为要对一套数据库的数据抽取进行io优化,希望通过修改表结构将抽取io降下来,因为抽取只针对标签HAVE_FLAG为"0"的值进行抽取,抽取之后更新HAVE_FLAG为其他值, ...

  7. css中width的计算方式,以及width:100%的参考系

    PS:测试浏览器均为chrome. 首先说下负margin的影响. 正常html页面在显示时,默认是根据文档流的形式显示的.文档流横向显示时,会有一个元素横向排列的基准线,并且以最高元素的vertic ...

  8. gets(),fgets()的作用机制探究

    gets(),fgets() scanf("%d",&a)若接受形如 2 这样的输入后,缓冲区内会留一个\n,此后若调用gets等函数时会读出这个换行出现错误,需注意 fg ...

  9. php://input,php://filter,data URI schema的那些事

    一.php://input一句话木马 在调研dedecms的历史漏洞时,发现了dedecms安装文件曾经出过被植入后门的漏洞(SSV-ID站点include目录下shopcar.class.php文件 ...

  10. iOS应用架构谈 网络层设计方案

    网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大.另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用.其它的ASIHttpRequ ...