C语言--读书笔记(一)
来源:互联网 发布:点击图标打不开软件 编辑:程序博客网 时间:2024/04/30 04:48
1.C语言中的符号重载
static 在函数内部,表示该变量的值在各个调用间一直保持延续性,在函数这一级,表示该函数只对本文件可见。
exter/缺省时 用于函数的定义,表示全局可见。用于变量,表示它在其他地方定义
2. 当sizeof的操作数是个类型名时,两边必须加上括号,但操作数如果是变量名则不必加括号。
例如: apple = sizeof(int)*P
|————————>'*'被编译器认为是乘号。
3. C语言中的优先级
圆下箭头一顿号
非凡增减富强针地长
三乘除,四加减,五移位
千万别把鱼忘记,它在盛饭的厨子里
小灯大灯灯灯不等
爸喂鱼,舅疑惑,裸鸡也疑惑
十三姨,十四父,十五逗,兜到低
“圆下箭头一顿号”指的是第15级的运算符。其中圆指的是运算符(),下指的是下标运算符[],箭头指的是指向结构体成员运算符->,顿号指的是结构体成员运算符、
“非凡增减富强针地长”指的是第14级的运算符。其中非指的是逻辑运算符!,凡指的是按位取反运算符~,增减指的是自增和自减运算符++和--,富指的是负号运算符-,强指的是类型转换运算符(类型),针指的是指针运算符*,地指的是地址运算符&,长指的是长度运算符Sizeof
“三乘除,四加减,五移位” 指的是第13级到第11级的运算符。其中三四五并无实际意义,只是起区分级别而已。也可以想象三指的是第13级运算符。乘除指的是乘法运算符*和除法运算符/,加减指的是加法运算符+和减法运算符-,移位指的是左移运算符<<和右移运算符>>
“千万别把鱼忘记,它在盛饭的厨子里”指的是求余运算符%,它位于盛饭的厨子里,即指和乘法运算符、除法运算符在一起。
“小灯大灯灯灯不等” 指的是第10级到第9级的运算符。其中小灯大灯指的是关系运算符<、<=、>和>=,灯灯指的是等于运算符==,不等指的是不等于运算符!=
“爸喂鱼,舅疑惑,裸鸡也疑惑”指的是第8级到第4级的运算符。其中,爸喂鱼之指的是第8级的按位与运算符&,舅疑惑指的是第7级的按位异或运算符^和第6级的按位或运算符||,裸鸡也疑惑指的是第5级、第4级的逻辑与运算符&&和逻辑或运算符||
“十三姨,十四父,十五逗,兜到低”指的是第3级到第1级的运算符。其中,十三姨指的是条件运算符?: (三有双重含义,即指?:的优先级别是三,它的运算符类型也是三目,?难道不是姨即疑惑吗?),十四父的十四没有实际意义,父指的是赋值运算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,十五逗指的是第1级的运算符,兜到低指的是15级运算符以,结束。
1: Operators Associativity
2: () [] –> . left to right
3: ! ~ ++ -- + - * (type) sizeof right to left
4: * / % left to right
5: + - left to right
6: << >> left to right
7: < <= > >= left to right
8: == != left to right
9: & left to right
10: ^ left to right
11: | left to right
12: && left to right
13: || left to right
14: ?: right to left
15: = += -= *= /= %= &= ^= |= <<= >>= right to left
16: , left to right
例子:
优先级 表达式 实际结果 注释
—————————————————————————————————————————————————————————————
'.'的优先级高于'*' *P.f *(P.f) 对P去f偏移,作为指针,
->操作符可取消这个问题 然后进行解除应用操作
—————————————————————————————————————————————————————————————
[]高于* int *ap[] int *(ap[]) ap是个元素为int指针的数组
—————————————————————————————————————————————————————————————
函数()高于* int *fp() int *(fp()) fp是个函数,返回int *
4. 自动变量在堆栈中分配内存,当包含自动变量的函数或代码块退出时,他们所占用的内存便会被回收,解决方案:
a. 返回一个指向字符串常量的指针。
b. 使用全局声明的数组。
c. 使用静态的数组。
d. 要求使用者分配内存来保护函数的返回值,为了提高安全性,调用者应该同时质地昂缓冲区的大小
- C语言--读书笔记(一)
- 数据结构读书笔记(一)(C语言)
- C语言深度剖析读书笔记(一)
- 《C语言参悟之旅》 -读书笔记(一)
- 读书笔记(一)《C语言精彩编程百例》
- 《C语言参悟之旅》 -读书笔记(一)
- 《C语言参悟之旅》-读书笔记(一)
- 495个C语言问题读书笔记一
- C语言左值与右值的区别(C语言深度剖析读书笔记一)
- c语言读书笔记(zz)
- C语言--读书笔记(二)
- C语言技巧(读书笔记)
- C++Primer读书笔记(一)
- 《Essential C++》读书笔记(一)
- C++primer读书笔记(一)
- 《Effictive C++》读书笔记(一)
- 《effective C++》读书笔记(一)
- 《零点起飞学C语言(康莉)》读书笔记一
- 开始学习JavaScript的第一个东东
- 将 Tocmat5.0 注册为 Windows 的服务程序
- 漫谈SQL Server中的标识列
- [新闻] 微软12月15日发布17个安全补丁
- W3 Jmail使用详细教程+简单实例
- C语言--读书笔记(一)
- MySQL外键:数据库新手入门之MySQL中如何定义外键
- 有用网址
- Bash中命令连接符的用法——一次执行多个命令
- 幸福是什么?
- jQuery.inArray(value,array)
- 推荐一些Android网站
- 3年工作经验程序员的发展之路
- [MySQL] 主键设计原则