c语言大括号没有所在不同位置,2015.8.5 循环与函数、位运算

注意点:

1、只有整形才可以用switch。

2、case后面的常量不可以重复

3、default语句可以放在任意位置,但是后面不可以省略break;

while:

1、用来处理一些重复执行的操作

2、确定循环终止的条件

(1)在循环开始之前,需要定义一个循环控制变量并将其初始

(2)确定循环的约束条件

(3)在每一次循环结束的时候,在循环中,要去改变循环控制变量的值,让它不间断接近约束条件

注意点:

1、在c语言总任何树枝都有真假性,只有0为 假,其它都为真

2、注意不把==和=混淆了,为了避免这种错误,把常量写在前面,变量写在后面

3、;号是一个空语句,空语句也是语句当while直接跟;那么就说明只有;和while是一体的,那么后面的大括号和和while无关

4、在while内部定义的变量在外部不可以访问

5、作用域紊乱:如果想再循环体中定义一个型的变量,必须带大括号

do{}while{}:

1、循环体中语句至少执行一次

for(初始化表达式:条件表达式:循环后操作表达式) {}

1、初始化表达式:在循环开始前仅仅执行一次

2、条件表达式,在没有循环开始跌时候都会执行循环条件表达式,如果条件满足那就执行循环体中的语句,如果条件不满足就结束循环

3、循环后操作表达式:当没有循环结束的时候都会执行循环后操作表达式

注意点:

1、for后面不能直接写分号

2、作用域紊乱,要在循环体中定义变量必须要有大括号

for循环中的作用域

1、for循环外部不可以访问for小括号中定义的变量

2、循环体重定义的变量在小括号中不可以使用

break:用在循环语句中,结束当前循环语句;

continue;只能用在循环内部,作用跳过当前循环的后面内容,继续下一次条件判断

if(!a){continue;} printf("a");

循环嵌套:

1、for不容易出错

2、代码更加整洁,可读性更好

3、当整个循环结束后还需要使用循环控制变量用while

4、如果条件表达式不写,系统默认为真

5、for循环变体

for(;;;)死循环

int i = 0;

for(;;i<2)

{

printf("%d", i);

i++;

}

总执行次数 = 外循环次数 * 内循环执行次数

但凡遇到行与列的问题就循环嵌套,外层循环控制行,内层循环控制列

总结:内层循环的条件表达式随着外层控制变量变化而变化

循环总结

当在while中使用continue时,务必保证循环控制变量的修改放在continue前面,否则会导致死循环

怎样判断if else

1、从上往下找else

2、从下往上找if,第一个找到的没有匹配的if就是这个else配对

函数:

函数:完成特定功能代码块,函数名不可以重复定义,给函数起一个有意义的名字

函数作用:管理代码块

函数优点:提高代码的可读性

提高代码的复用性、提高代码的可维护性。

函数特点:调用时才会执行

如何去定义一个函数:

1、根据函数功能给函数起一个有意义的名字

2、确定需不需要传入一些辅助的值

3、确定需要返回什么类型的数据给函数调用者

4、完成函数功能

当函数没有返回值的时候,就将函数的返回值声明为void

当函数的返回值为void的时候,return语句可以省略

什么时候需要形式参数,当我们完成莫个功能,有些数据我们不能确定,那么这个时候需要外界告诉我们。

返回值类型:就是函数执行完毕后返回什么类型的值给函数调用者

函数的参数:

行参:当带你故意函数的时候,函数名称后面小括号中的参数我们称为形式参数。

实参:当调用函数的时候,函数名称后面小括号总的参数我们称为实际参数

1、实参与行参一一对应的

2、行参试社么类型那么实参也必须输入什么类型的值

3、行参列表中不可以有同名的行参变量

4、在函数内部也不可以直接定义与行参同名的变量

5、基本数据类型作为参数传递的时候试值传递

返回值类型:

主调函数:调用其它函数的那个函数

被调函数:在其他函数中被调用的函数

1、函数定义i 中声明是什么返回值类型,那么在主调函数中就必须用通过类型的变量接收

2、什么样的返回值类型,,就必须返回什么样的类型的值,确保返回值的类型与函数定义中返回值一致

3、如果函数的返回值不为空,就必须有返回值,不能为空

return的作用:

1、返回数据给函数调用

2、结束函数

3、在返回值类型为void的函数中,可以使用retrun来提前结束函数

4、在同一个函数中可以有多个return语句,但仅仅有一个return会被执行,只有一个 return执行了则后面的代码就不会被执行,if(num=1) {printf(“a”) return} return num1 + num2;

注意点:在c语言中没有函数重载的概念,它区分函数仅仅是根据函数的名称,只要是名称相同就是重复定义,无论行参是否相同

函数的调用过程:

1、在c语言中,不允许函数嵌套的,也就是说函数内部不可以定义其它函数了

#include的作用:

预编译指令:在编译之前就要解析处理命令

1、在预编译的时候拷贝#include后面文件内容#include指令所在位置

#include “文件名称”

1、在当前文件所在目录查找

2、如果当前目录下没有找到就去编译器include的路径下查找

3、如果还没有找到就去系统的include路径下查找

4、如果还没有找到就报错了

#include

1、去编译器include的路径下查找

2、如果还没有找到就去系统的include的路径下找

3、如果还没有找到就报错了

总结:当你包含项目文件(程序员自己写的文件)就是#include ""

当你需要包含系统文件的时候使用#include<>

函数声明:

把函数的头拷贝到条用他的前面

作用:告诉编译器这个函数已经存在

一个完整的函数包含两个部分一个就是函数声明,一个就是函数定义

mac文件目录:

/路径前面:就代表着党旗那电脑的硬盘(跟目录)

绝对路径:以/开头的路径

相对路径:不是以/开头的路径就是相对路径,就是相对于当前路径

多文件开发:

将函数的声明和函数的实现分成一个.h和一个.c文件进行开发,别人用我实现的方法只需要将我定义的头文件导入即可

计算机中的进制问题

二进制:以0B开头的就表示二进制数

八进制:以0开头表示八进制数

十六进制:0x或0X开头的数就是一个十六进制数

进制转换:

八进制输出的格式符:%o %O

十六进制的输出格式符:%x输出a-f %X A-F

在c语言中没有提供二进制的输出格式符

十进制转换二进制:

规则:除2取余倒叙排

比如13商余数

13/261

6/230

3/211

1/201

二进制转换十进制

每一位乘以对应位上的幂数然后相加

二进制转换八进制:一个八进制数就对应3个二进制数,三个二进制数最大表示7,一个八进制数最大7

二进制转换为16进制:一个十六进制对应4个二进制,四个二进制的数最大表示15,一个16进制最大表示15

八进制-16进制:先转为二进制在转

十进制转16进制:16取余倒叙排

16进制砖10进制:每一位乘以对应位上的幂数然后相加

原码反码补码

正整数:原码反码补码相同,正整数0开头,第一位是符号位

1=31ge0 1

负数:

-1

符号为1=130ge0 1

原码:100000000000000000000000000000001

反码:原码符号位不变,其他取反

补码:反码+1

计算机中存储的就是数字的补码

位运算:针对二进制位运算

&按位与:对应的二进制位上,一个为0就是0,全1才位1一假则假

|按位或:对应的二进制位上,一个为1就是1,全0才位0一真则真

^按位异或:相同为0,不同为1

1、多个数相互异结果不变(交换律)

2、任何数异或0都是原来的数

3、相同的数相互抑或为0

~按位取反

右移>> m >> n m向右移动n位,移出来的位直接删掉,移入位补符号位(整数补0,负数补1)

使用场景:快速计算一个数除以2的n次方,对于一个整数来说右移几位就是除以2的几次放

左移<

左移可能会改变号位

使用场景:当比较小时,可以快数计算这个数乘以2的多少次放

快数计算2的3次方

练习:

1、交换两个变量的值,不借助变量

2、判断一个数的奇偶性

(1)第一种:算术运算

a = a - b;

b = a + b; // b = 原a -原b +原b =原a

a = b - a; // a=原a -(原a -原b)=原a -原a +原b = 原b

(2)第二种方式:亦或运算

a = a ^ b;

b = a ^ b; // 原a ^ 原b ^ 原b =原a;

a = a ^ b; // 原a ^ 原b ^ 原a =原a ^ 原a ^ 原b =0 ^ 原b =原b

2、(1)使用if

(2)不推荐使用

n % 2? == 0? printf(“偶数\n”):(“奇数\n”);

(3)&

101& 001= 1;只看最后一位,其它都为2的倍数

if(n&1)

{

printf("奇数\n");

} else{

printf("奇数\n");

}

整体今天和昨天最重要的就是循环的灵活使用,和函数的定义声明的掌握。

原文:http://www.cnblogs.com/lvjun70/p/4706277.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值