黑马程序员---C语言学习笔记之二
来源:互联网 发布:linux yum配置本地源 编辑:程序博客网 时间:2024/06/04 18:54
1.include 预编译
2.<> 系统头文件目录 /usr/include CPATH INCLUDE_PATH
"" 当前目录,引号之间可以指定文件夹
3.常量的定义方法:const double PI = 3.14 表示PI是一个常量,不允许修改,const为关键字,保证该值不被修改
直接写出的值本身称做字面量,一个整数的字面量默认为int
如果要想让一个整数默认为其它类型,要加后缀,如long int型的后缀为L
同样的,小数的字面量默认为double,如果要表示float,要加后缀F。如:45641132L,3.1415F
常量 字面量
3 int
3.5 double
3.5f float
3.5L long double
3L long int
3LL long long
逻辑真 非零1 1.0 a
逻辑假 零0 ‘\0’ NULL
4.printf 格式串,%c %和说明符c之间
- 左对齐(默认右对齐)
数字 最小宽度,(默认用空格代替)
. 区分宽度和精度
数字 精度 最大字符数,小数点后的位数
* 宽度或精度,需要用参数指定
scanf 格式串,%c %和说明符c之间
* 表示抛弃输入的数据
读取在[ ]内范围的字符 读取不在[^ ]范围内的数据
scanf("%*[^\n]%*c");//清除输入缓冲区中的内容,直到非空白字符为止
数字:最大字符宽度
5.sizeof(类型,表达式,变量名),括号里面如果是表达式也不会进行运算
sizeof后面如果跟变量名或数组名的话,可以不带括号但不提倡
6.if(运算符两边有一个long double)
{
运算结果就是long double
}
else if(运算符两边有一个double)
{
运算结果就是double
}
else if(运算符两边有一个float)
{
运算结果就是float
}
else if(运算符两边有一个long int)
{
运算结果就是long int
}
else if(运算符两边有一个unsigned int)
{
运算结果就是unsigned int
}
else
{
运算结果就是int
}
7.++与--是单目运算符,该操作数必须为整型变量。把变量中的数本身加1或减1,再保存到这个变量中去
++i返回的是变量i,i++返回的是i的值
8.只有整型非负的变量或数据才能做求余操作
9.逻辑运算符有短路特性
如果&&运算符前面的表达式为假,则意味着不管&&后面的表达式为真或者为假,总的与结果都为假,所以后面的表达式一般不计算
||运算符与之类似,如果||前面的表达式为真,则总的或结果肯定为真,所以后面的表达式也一般不计算
a>b && ++c<d 如果在a<b的情况下,可能忽略后面的++c操作,所以c的值可能不会被修改
10.按位与经常用来把一个数2进制形式的某一位置0或查看一个数2进制形式的某一位是个1还是0
第3位置0 0000 0111查看第4位0000 0111
与 1111 1011与0000 1000
与运算(&)
双目运算。二个位都置位(等于1)时,结果等于1,其它的结果都等于0。
1 & 1 == 1
1 & 0 == 0
0 & 1 == 0
0 & 0 == 0
11.按位或经常用来把一个数2进制形式的某一位置1
第4位置1 0000 0111
或 0000 1000
或运算( | )
双目运算。二个位只要有一个位置位,结果就等于1。二个位都为0时,结果为0。
1 | 1 == 1
1 | 0 == 1
0 | 1 == 1
0 | 0 == 0
12.按位异或经常用来把一个数2进制形式的某一位反转
第5位反转 0000 0111
异或 0001 0000
异或运算(^)
双目运算。二个位不相等时,结果为1,否则为0。
1 ^ 1 == 0
1 ^ 0 == 1
0 ^ 1 == 1
0 ^ 0 == 0
13.>>右移一位相当于除以2,有符号数最左边补符号位,无符号数最左边补0
<<左移一位相当于乘以2(在无溢出的情况下)
14.&返回的变量的地址,*返回的是地址指向的变量
15.运算符优先级 单目比双目高
16.三元运算符的冒号前后的类型必须一致,否则编译器在编译的时候会无法确定整个表达式的明确类型而报错
17.如果一个整型变量被赋的值超过了它的取值范围,那么会发生溢出现象,称为回绕
无符号整型变量的回绕现象为回到0重新开始,而有符号整数的回绕是从最大的正值回绕到最小的负值
浮点数没有回绕,如果超过了它的表示范围,就记作inf,意为无穷大
- 黑马程序员---C语言学习笔记之二
- 【黑马程序员】Objective-C语言学习笔记之类(二)
- 【黑马程序员】C语言学习笔记之clang指令(二)
- 【黑马程序员】C语言学习笔记之函数(八)
- 【黑马程序员】C语言学习笔记之数组(九)
- 【黑马程序员】C语言学习笔记之错题集
- 【黑马程序员】C语言学习笔记之指针(十一)
- 【黑马程序员】C语言学习笔记之字符串(十)
- 【黑马程序员】C语言学习笔记之枚举(十三)
- 【黑马程序员】C语言学习笔记之typedef(十五)
- 【黑马程序员】Objective-C语言学习笔记之小知识点
- 黑马程序员---C语言学习笔记之三
- 黑马程序员---C语言学习笔记之四
- 黑马程序员---C语言学习笔记之五
- 黑马程序员---C语言学习笔记之六
- 黑马程序员-------c语言学习笔记之基础知识储备
- 黑马程序员-------c语言学习笔记之流程控制
- 黑马程序员-------c语言学习笔记之数组与字符串
- 自动代理切换扩展的妙用:加快访问“半墙”网页的速度
- 编译安装Nginx
- 花几分钟用Socket.io写一个简单的你画我猜小应用
- 自动化部署工具 Capistrano 与 Mina
- 被人忽略的 signed 关键字
- 黑马程序员---C语言学习笔记之二
- 通过Python的__slots__节省9GB内存
- Code Sign error
- 重构与Intellij Idea初探
- 防恶意注册的思考
- [译]Laravel 4 使用技巧之 - 安装技巧
- LeetCode Single Number
- android 百度地图3.0+常用操作
- 利用JavaScript构建OSX应用