------- android培训、java培训、IOS培训、.Net培训、期待与您交流! ----------
本系列博客主要描述c语言基础与OC语言基础。大家可随时沟通交流。根据学习做一些笔记,也方便学习和复习巩固。
首先先介绍一下C语言的特点:
(1)语言简洁、紧凑,使用方便、灵活;
(2)运算符丰富;
(3)数据类型丰富;
(4)具有结构化的控制语句;
(5)语法限制不太严格,程序设计自由度大;
(6)C语言运行直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作;
(7)用C语言编写的程序可移植性好;
(8)生成目标代码质量高,程序执行效率高。
C语言中得重难点:
1.运算符:自增、自减运算符
2.进制:进制转换、原码、反码和补码
3.数组:一维数组、二维、多维数组
4.循环:多重循环的嵌套、排序、查找
5.函数:递归函数、吊用
6.指针:一级指针、多级指针、指针和数组、函数、结构体之间的关系
7.内存管理:c语言的内存管理问题、内存泄露、野指针
8.有参宏及条件编译
9.多文件开发:多文件编译、多文件开发
C语言常见注释符号:
//单行注释
/*多行注释*/
标识符的划分:关键字,预定义标识符和用户标识符
规则:1.只能由字母,数字,下划线或$组成;
2.不能以数字开头;
3.不能与关键字重名;
4.严格区分大小写;
数据类型分为:基本类型,构造类型,指针类型,空类型(void),定义类型(typedef)。
基本类型:1.整型(1)短整型 short ;(2)整型 int;(3)长整型 long;
2.字符型 char;
3.实数型(1)单精度 float;(2)双精度 double;
构造类型:1.数组;2.结构体(struct);3.共用型(union);4.枚举类型(enum);
10进制:15 8进制以0开头:045
2进制以0b(0B)开头:0b00000001
16进制以0x开头:0x438fa
单精度2.3f (4个字节)双精度2.3(计算机默认以双精度代表一个小数)
字符:‘a',’*‘,’&‘;转义字符’\n‘;’\r‘,’\t‘,’\\‘;
字符串:“abc”
32个关键字(auto 局部变量(自动储存);break无条件退出程序最内层循环;case switch语句中选择项;char单字节整型数据;const定义不可更改的常量值;
continue中断本次循环,并转向下一次循环;default switch语句中的默认选择项;do 用于构成do.....while循环语句;double定义双精度浮点型数据;
else构成if.....else选择程序结构;enum枚举;extern在其它程序模块中说明了全局变量;float定义单精度浮点型数据;for构成for循环语句;goto构成goto转移结构;
if构成if....else选择结构;int基本整型数据;long长整型数据;registerCPU内部寄存的变量;return用于返回函数的返回值;short短整型数据;signed有符号数;
sizoef计算表达式或数据类型的占用字节数;static定义静态变量struct定义结构类型数据;switch构成switch选择结构;typedef重新定义数据类型;
union联合类型数据;unsigned定义无符号数据;void定义无类型数据;volatile该变量在程序中执行中可被隐含地改变;while用于构成do...while或while循环结构;)
数据类型占用存储长度 16 32 64
void 2 4 8
short 2 2 2
char 1 1 1
int 2 4 4
float 4 4 4
double 8 8 8
long 4 4 8
转义字符:\n换行 %d10进制 %f实数 %c字符 %s字符串 %0八进制 %x十六进制
%p地址 %lf双精度 %md设置m域宽 \t空白 注意转义字符\\=\
运算符连接操作数
分类:算术,关系,逻辑,按位运算符
%求余运算符 不能应用于float与double 只能在整型中使用
强制类型转换是临时转换不会改变原值
int a=3 ++a a++
表达式中a值 4 3
执行后变量a值 4 4
优先级
i++,先看i,再让i的值加一(表达式值为i)
++i 先让I的值加一(表达式的值为i+1)
sizeof为单目运算符 不是一个函数
sizeof(常量/变量) 求数据类型表达式所占字节数
char占一个字节 sizeof在用常量与变量可以省括号,但用在数据类型上不可以省
关系运算符 != > < == >= <= 返回值为0或1
逻辑运算符 && || !
&& 一假则假 同真为真
|| 一真为真 同假为假
! 真变假 假变真
短路问题
A&&B A假(0) B不执行
A||B A真(1) B不执行
三目运算符 真或假 1 0
int a=表达式1 ?表达式2 : 表达式3
程序结构:1.顺序结构;2.分支结构;3.循环结构
if语句 if(表达式){ }
if...else语句 if(表达式){ }else{ }
switch分支语句
switch(表达式){
case 常量表达式1:语句1;break;
.......
case 常量表达式n:语句n;break;
default:语句n+1;
}
while语句与do ...while语句
while(表达式){ }
do { 语句 }while(表达式)
区别 条件不合时候,do...while会执行一次 while是先判断再执行
for语句
for(表达式1;表达式2;表达式3){ }
初始化语句会被执行一次,当条件不符合时,循环结束。