C_Learning (1)
/数据类型及占用字节
char
1个字节{-128~127}
int
2、4个字节,取决于平台是16位还是32位机子{-65536~65535}
short int
2个字节{-32768~32767}
long int
4个字节{-2147483648~21474833647}
float
4个字节{-3.4*10^-38~3.4*10^38}
double
8个字节{-1.7*10-308~1.7*10^308}
long double
8个字节{1.7*10^-308~1.7*10^308}
/数据类型强制转换时,由高阶向低阶转换可能导致数据丢失;
/前缀自增与后缀自增的区别在于:前缀先自增再赋值,后缀先赋值再自增;
/运算优先级口诀:
括号成员第一; //括号运算符[]() 成员运算符. ->
全体单目第二; //所有的单目运算符比如!、~、++、 --、 +(正)、 -(负) 、指针运算*、&
乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== 和!=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和 &&
十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)
条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高
逗号运算级最低! //逗号运算符优先级最低
/字符(串)的输出和输入
/putchar和getchar一次只能输出和接收一个字符;
/puts和gets用来输出和接收字符串;
/printf附加符号
/+、- 向右、向左对齐
/m.n m=数据最小宽度,n=取n个字符或小数
/for语句中,表达式2为空 || 表达式3为空 || 表达式全为空,则说明是无限循环
/字符串操作
/字符串复制
/strcpy(目的字符数组,源字符数组)
/目的字符数组的长度必须足够长,且不写成数组名形式
/不能用赋值语句将一个字符串常量或字符数组赋值给一个字符数组
/strncpy(str2,s,i);将数组s的前i个字符复制到数组str2中
/字符串连接
/strcat(目的字符数组,源字符数组)
/目的字符数组的长度必须足够长
/字符串比较
/strcmp(目的字符数组,源字符数组)
/返回值:
0 —— 字符串1 = 字符串2
正数 —— 字符串1 > 字符串2
负数 —— 字符串1 < 字符串2
/字符串大小写转换
/小写转大写:strupr(数组)
/大写转小写:strlwr(数组)
/字符串长度
/strlen(数组) [不含字符串结束标志'\0s']
/函数
/内部函数(静态函数):static
\使函数只局限在函数所在的源文件中,如果在不同的源文\
\件中有相同的内部函数,则这些同名的函数是互不干扰的
/外部函数:extern
\可以被其他源文件调用的函数,即外部函数是共享的
/绝对值
/abs(); 求整数的绝对值
/labs(); 求长整数的绝对值
/fabs(); 求浮点数的绝对值
/检测参数是否字母:isalpha()
/是,返回非零值
/否,返回零
/检测参数是否数字:isdigit()
/是,返回非零值
/否,返回零
/检测数字或字母:isalnum()
/是,返回非零值
/否,返回零
/变量存储类型
/存储空间:程序区、静态存储区、动态存储区
/程序区: 放置用户要执行的程序段
/静态存储区:放置静态存储的变量,全局变量都保存在静态存储区,因此,全局变量从程序执行时开始分配存储单元,直到程序终止时,才释放所占的存储单元
/动态存储区:放置动态存储的变量,如与堆栈操作相关的数据以及局部变量,因此,如果一个函数被调用了两次,其中的变量存储空间可能为不同的地址
/自动变量:auto,动态分配存储单元,用完就释放,再次调用时重新计算
/静态变量:static,静态分配存储单元,用完不释放,再次调用时在上一次的基础上继续计算
/寄存器变量register(属于动态存储方式)
/CPU访问寄存器的速度要快于内存,因此register用于需要频繁使用的变量
/但由于寄存器数量有限,当计算机的寄存器不够用时,变量是作为自动变量处理的
/外部变量:extern(属于静态存储方式)
/就是全局变量
/但是可以被其他源文件调用
/静态外部变量:static
/也是全局变量
/但是只能被当前源文件使用
C_Learning (1)的更多相关文章
- C_Learning (4)
/ 预处理命令 / 宏定义 / 一般形式:#define 宏名 字符串 # 表示这是一条预处理命令 宏名是一个标识符,必须符合C语言标识符的规定 字符串可以是常数.表达式.格式化字符串等 / 注意: ...
- C_Learning(3)
/ 结构体 / 声明结构体类型的一般形式: struct 结构体名[--表示的是这个结构体的类型] { 成员列表 }; [不要漏掉这个";"] / 声明结构可以放在main函 ...
- C_Learning(2)
/指针 /指针变量指向一个变量的地址 /给指针变量赋的值只能是地址 /指针变量的赋值 /{ int a; int *p; p=&a; } or { int a; int *p=&a; ...
- 复习C语言
今天突然有感觉复习下C语言了,发现已经好久没有用过C编程了,话说最近都没有编过程序了都,趁现在还有点时间,好好学习下C了.话不多说上题目 请定义一个宏,比较两个数a.b的大小,不能使用大于.小于.if ...
- 数据结构(C实现)------- 最小生成树之Prim算法
[本文是自己学习所做笔记.欢迎转载.但请注明出处:http://blog.csdn.net/jesson20121020] 算法描写叙述 假设连通图是一个网,则称该网中全部生成树中权值总和最小的生成树 ...
随机推荐
- jupyter notebook快捷键速查手册
jupyter notebook快捷键速查手册 Enter : 转入编辑模式 Shift-Enter : 运行本单元,选中下个单元 Ctrl-Enter : 运行本单元 Alt-Enter : 运行本 ...
- @font-face 字体图标的应用
所谓字体图标,顾名思义就是图标以字体的形式存在,可以利用 font-size.color 对字体图标的大小和颜色进行渲染.将小图标集中放到字体库里,利用css3 @font-face 引用图标,不仅有 ...
- android 量产软件改动信息(持续更新)
http://blog.csdn.net/xubin341719/article/details/8449352 关键词:android 4.0默认语言蓝牙名称 MTP名称默认时区关于平板电脑 内核版 ...
- Qt中容器类应该如何存储对象(对象加入到容器时会发生拷贝,容器析构时,容器内的对象也会析构)
Qt提供了丰富的容器类型,如:QList.QVector.QMap等等.详细的使用方法可以参考官方文档,网上也有很多示例文章,不过大部分文章的举例都是使用基础类型:如int.QString等.如果我们 ...
- Redis压力测试
然后依次测试如下命令: 上面第三个命令写错了,要改为:
- [py]编码-强力理解版
py编码骨灰级总结 思路: python执行py文件步骤--py2/3定义变量时unicode差异 1,py2 py3执行py文件的步骤 2,py2 定义变量x='mao' 1.x='mao', # ...
- 关于Python类属性与实例属性的讨论
标题名字有点长. 之所以想写这个文章是因为碰巧看到网上一篇关于Pyhon中类属性及实例属性区别的帖子.因为我之前也被这个问题困扰过,今天碰巧看到了这篇帖子,发现帖子的作者只是描述了现象,然后对原因的解 ...
- 找出numpy array数组的最值及其索引
在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where ...
- Java编写验证码
Java后台代码(CheckCodeServlet.java) package web; import java.awt.Color; import java.awt.Font; import jav ...
- 多项式函数插值:全域多项式插值(一)单项式基插值、拉格朗日插值、牛顿插值 [MATLAB]
全域多项式插值指的是在整个插值区域内形成一个多项式函数作为插值函数.关于多项式插值的基本知识,见“计算基本理论”. 在单项式基插值和牛顿插值形成的表达式中,求该表达式在某一点处的值使用的Horner嵌 ...