C -金沙粒 1
来源:互联网 发布:金十数据手机安卓版 编辑:程序博客网 时间:2024/04/29 10:08
C -金沙粒 1
说明符
auto: 局部变量的默认属性,指明变量是在栈上分配空间
static:
1. 修饰局部变量时,局部变量存储在程序的静态区
2. 文件作用域标识符
a, 修饰全局变量, 指明其作用域仅在声明文件中
b, 修饰函数, 说明函数只在本文件有效
register:
1. 指明将变量尽可能的存储在寄存器中,但不一定成功
2. register变量的值必须是寄存器可以接受的值(64位的变量, 你也存不到32的寄存器中, 是吧)
3. 不能用&运算符获取register变量的地址。 (可以说那些寄存器是没地址的)
4. 这个说明符常用在非常讲究实时性的系统中
extern:
1. 引用声明, 说明变量定义在其他地方
2. 强制编译器用C的方式编译代码 -> extern “C” { .. }
以上4个, 再加一个typedef, 他们可以说是存储类说明符。一个声明最对只能有一个存储类说明符。
if与switch
if需要注意的地方:
1. 普通变量和0值比较时,0值应该出现在比较符号的左边。 特别而言,对于相等比较应该这样写:
if( 0 == i ) //可以错误
2. float变量不能直接与0值进行比较, 最好进行精度定义
3. bool型变量(我们一般都用int型代替),应该直接出现在条件中, 不要进行比较。
首先,这是因为C的bool型并不标准(0位假, 非0即为真)
例如:
int flag = 1; //真
应该这样写 - > while(flag) 而不是 while( flag == 1 )
swith
1. swith语句对应单个条件,多个分支的情况
2. case后面必须得有break(不然你用它干什么!) default一般加上他没坏处, 他可以帮我们处理特殊情况
3. case语句的值只能是整型或者字符型
if语句可以安全的从功能上代替switch, 而switch却无法代替if!
循环
for循环可以理解为while的简洁形式。
do..while应注意不要出现下面的情况:
do { //.... n--; //n在执行自减前, 如果变为了0你怎么办? }while(n)
break: 他实质上是switch语句的附属物, 不过他的另一重要作用就是直接终止当前循环
continue: 他生来就是为循环服务的, 代表直接进入下一轮循环。
void指针与void类型
- 不存在void类型
C语言中没有定义void究竟是多大内存的别名。
sizeof(void) : 在gcc中是1, 而在C++中是0
2.void* 指针的意义
a, C语言规定, 只有相同类型的指针才可以相互赋值
b, void*指针作为左值用于接受任意类型指针
c, void*指针作为右值在赋值给其他类型指针时需要强转。
sizeof
- sizeof并不是函数,他是编译器内置指示符 example: int a -> sizeof(a) or sizeof a 都是可以的。
- sizeof用于计算相应实体所占内存大小
- sizeof的值在编译器就已经确定了
- C -金沙粒 1
- "金沙"文档,掀起企业淘金热
- 金沙湾猎豹野战记
- 东软金沙笔试题目
- 金沙娱乐城开心一笑
- [转帖]"金沙"文档,掀起企业淘金热
- 金沙数据-《大话搜索引擎》之开篇
- Home 成都金沙客运站班期时刻表 班车信息
- c/c++--1
- C-1-C基础
- 求1+2+...+n[C/C++/C#]
- C&C++(1) - extern "C"的作用
- C#:1
- c++[1]
- C++#1
- C#(1)
- C.1
- C 1
- awk打印第一个字母
- 108 ubuntu下安装composer
- JAVA eclipse 编译类文件路径
- Move Zeros
- hdoj 2669 Romantic 【扩展欧几里得 求解最小非负解】
- C -金沙粒 1
- 查到的别人稀疏表示的研究
- Java——网络编程(一)
- 移动端布局 Css3 弹性盒子模型封装 display:box;
- IOS 控制系统音量
- CGI与WSGI编程简析
- DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command f
- okhttp 配置头部信息注意事项
- java的一道思考题