黑马程序员-C语言基础学习(四)

来源:互联网 发布:风机scada数据与故障 编辑:程序博客网 时间:2024/05/22 00:42

---------------------- IOS培训.期待与您交流! ----------------------

C语言学习笔记四


---既然决定14年要好好的努力一次,那么就不要再轻言放弃,不再在随波逐流。只有努力过、拼搏过,才会知道自己行还是不行!为自己加油!---
---总结的知识点可能有不正确的地方,如果有发现请留言给我,我一定及时更正,不让错误的知识去误导大家,有好的意见也可大声提出来,小弟一定愿意采纳---


函数  (C语言是由一个或者多个函数构成)

1、函数定义格式:
返回值类型  函数名(形式参数列表)
{
函数体
}
2、使用中注意:
函数体内部不能定义和形参一样的变量
int test(int a)
{
int a = 19;   //错误的
}
return 退出函数  返回一个具体值给函数的调用者。
如果不明确声明返回值类型,默认就是int类型
test(){ printf("123");}
就算明确声明返回值类型,也可以不返回任何值
默认情况下,C语言不允许两个函数名称一样,就是不应该有同名函数。
函数不能相互嵌套定义
函数声明最好要定义在main函数之前。 函数声明  函数定义
函数不可以重复定义,但是可以重复声明,且函数声明位置不做具体限定,只要在调用函数之前声明就可以
如果有函数声明,没有函数定义,编译可以通过,编译器只会检测语法合不合理。并不会检测是否定义,但是在链接时会报错。链接时会检测函数是否定义。
函数声明时如果是有参数的只需要指定参数的类型就可以了 如  int sumNumber(int, int);

#include <stdio.h>int test(int a, int b); 或者 int test(int, int);   //这些是函数声明,最后放在main函数之前int main(){    int a,b;    test(a,b);}  //函数定义int test(int a,int b){    return a + b;}

3、include指令 拷贝右边文件的所有内容到#include所在的位置  自定义的文件用 ""   系统自带的文件用<>  文件的路径可以是相对路径也可是绝对路径。 如 include "c:/test/a.h"

4、当项目中多人多文件开发时,文件分类一般遵守的规则:
1).  函数的定义放在.c 文件, 函数的声明放在.h 文件
2).  如果要使用某个.c文件中定义的函数,只要#include这个.c 文件对应的.h 文件
3).  .h文件作用:被别人拷贝,编译链接的时候不需要管.h文件

\n 是一个转义字符 \t  tab键  \"  一个引号
(printf函数是一个返回类型为整形的函数 函数返回的字符串常量的字符数,并不是字数  一个汉字占3个字符)

5、计算机中的进制
4种进制 十 二 八 十六
int number = 1010;    //默认情况为 十进制
int number2 = 0b1100; //二进制(0b或者0B开头)
int number3 = 014;    //八进制(0开头)
int number4 = 0xc //十六进制(0x或者0X开头)
%d \ %i 十进制输出整数 
%c 输出字符
%p 输出地址
%f 输出小数
%o 八进制形式输出整数
%x 十六进制形式输出整数
0.089 == .089 其中零可以省略
  int 4字节 (最高位是符号位,所以 取值范围为 负2的31次幂 到 2的31次幂减一) char  1字节  float 4字节  double  8字节

 6、类型说明符 
  long 、 short 、signed 、 unsigned
  其中long 、 short 只能修饰int类型,在被修饰的数值后面可以添加 l  或者 s 进行区分为具体那个修饰符  如  short int c = 1231231s; 
  int 4字节 %d
  short 2字节 %d  short int  == short
  long 8字节 %ld     long  int == long
  long long 8字节 %lld    long long int = long

signed 最高位要当作符号位处理  unsigned  最高位不当作符号位处理
signed == signed int  signed 有符号  正数 0 负数
unsigned == unsigned int  unsigned 无符号 0 正数
不同类型的说明符可以相互组合,但是同类型的不可以。比如 long 和short不能相互组合使用

7、位运算 
按位与 &   只有对应的两个二进制均为1 时,结果才为1,否则为0;
如 9&5  实质1001&101 = 1因此9&5=1
按位或 |   只要有一个是1结果就是1   如 1001 | 0101 = 1101
按位异或 ^  当对应的二进制相异时,结果为1 否则为 0 
如 1001 ^ 101 = 1100
相同数值异或,结果肯定为0 。 异或的数值可以交换 a^b = b^a
任何数值跟0异或,结果还是原来的数值   
用异或可以进行简单两数交换 a = a ^ b; b = a^b; a = a^b;
按位取反 ~    

<< 左移
把整数a 的二进制全部左移n位,高位丢弃,低位补零  实质就是乘以 2的n次方, 由于左移 高位丢弃 所以符号位也会被丢弃,最后的结果可能改变正负
>> 右移 与左移相反

判断奇偶数(用按位与& 运算判断奇偶性)
int a; a & 1 = 1 //奇数 a & 1 = 0; 偶数
用按位与& 判断奇偶数实质:
2的二进制 10  1的二进制为 00  

/*
将一个数已二进制的形式输出
number << temp & 1;可以输出二进制的数字  number 为整形数值  temp为左移位数  范围为从31 到 0

*/


8、字符类型的存储实质
字符类型存储细节  内存存储的是字符对应ASCII表中的数值的对应二进制数值
如 A ASCII 为 65 在存储时 存的是 65的二进制 0100 0001
char c2 = 'A' + 33;  实质为 65 + 33 = 98  对应到ASCII表为 b
单引号'' 只能扩住单字节的字符  char c = '男'; // 错误的  汉字站3 字节    char c = "A"; //错误,不是双引号
'A'  也可以等于 65  对应ASCII表的值  
char  类型也可以当作整数运用,但是范围只有 -128 ~ 127
int = 67 + '4'  字符'4' 对应ASCII表为 52 所以上式计算完结果为 67 + 52 = 119  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新生儿吃奶后打嗝怎么办 新生儿吃多漾奶怎么办 婴儿总是睡不熟怎么办 新生儿不不吃奶怎么办 学生沉迷网络游戏班主怎么办 手机用不了卡怎么办 手机变竖屏怎么办 游戏不支持分屏怎么办 服装设计做到没思路怎么办 眼睛变单眼皮了怎么办 换手机号银行卡绑定怎么办 麦当劳mdp改版了怎么办 摆摊做小吃下雨怎么办 cad2014画图很卡怎么办 头皮有毛囊虫怎么办 头发上的毛囊炎怎么办 狗笼子里面拉屎怎么办 地图鱼起白点怎么办 初中学不好高中怎么办 初中孩子英语不好怎么办 初中孩子数学不好怎么办 万能声卡声音小怎么办 营业执照显示经营异常怎么办 暑假教育培训证怎么办 账套引入失败怎么办 报税报错了怎么办 税盘一年没抄税怎么办 初级会计证没领怎么办 房贷没有流水账怎么办 锦州银行倒闭了怎么办 认缴期限过了怎么办 吃了假猪血怎么办 橡皮泥粘头发上怎么办 遇到难相处同事怎么办 遇到奇葩家长怎么办啊! 过期的孕妇奶粉怎么办 肝脏造血功能差怎么办 移动数据显示e怎么办 42天婴儿咳嗽怎么办 脚扭伤贴膏药过敏怎么办 哺乳期乳房有硬块怎么办