数据输出
Putchar(单字符输出函数)头文件stdio.h
格式;Putchar(字符表达式);既可以是字符也可以是控制字符或者是转义字符.
Puts字符串输出函数头文件stdio.h 输出字符串遇到“/0”结束并换行
格式;Puts(字符串、字符数组)
Printf(格式输出函数)头文件stdio.h但可以不用include
格式:printf(“格式控制”,输出列表)
格式控制要双引号括起来由%和格式字符组成;
d十进制整数,o无符号八进制整数,x无符号十六位整数,u无符号整数,c字符,s字符串,f小数形式实数%n.mf数据占n列有m位小数,e、E指数形式,g、G实数
数据输入
Getchar 字符输入函数头文件stdio.h
格式;c=getchar();多个输入只有第一个有效
Gets 字符串输入函数头文件stdio。H
格式gets(字符数组名);遇到回车键终止,必须保证长度小于字符数组长度。
Scanf 格式输入函数头文件stdio.h 可以不用include
格式;scanf(“格式控制”,地址列表)我们可以通过“&指针变量”的形式得到地址列表其中格式字符和printf一样不同的有l、L长整型及double型数据(%lf),(在程序中,如出现"scanf("%lf",【】);",则主要考查后面的地址表列【】,注意地址是由地址运算符"&"后跟变量名组成的。)
H、H用于短整型,s .域宽指定输入数据所占宽度,*表示跳过相应的数据
选择结构语句组
If
1,if(条件){语句组};满足条件就执行不满足就跳过such as : if(i%3==0&&i%7==0)s+=i;
2,if(条件){语句组1}
Else{语句组2}满足就执行语句组1否则就执行语句组2
3,if(条件){语句组1}
Else if(条件){语句组2}
……
Else{语句组n}感觉是多个语句组嵌套了
Switch
格式;switch (表达式)
{
Case 常量表达式1:
分支1;
Break;
Case 常量表达式2:
分支2;
Break;
……
Default:
分支n;
}先算出表达式的值就执行与之相等的分支的语句直到遇到break结束switch语句,都没有相等的就执行default分支的语句.
Goto 跳转语句(不推荐使用)
Goto 语句标号;
循环语句组
While
While(表达式)
{
语句组
}计算表达式如果为假跳过语句,如果为真执行语句组然后再重复while语句
Do-while
do {
语句组;
}while(表达式);只有一条语句时可以不用{},执行语句组然后计算表达式如果为假退出循环如果为真重复语句。For
For(【表达式1】;【表达式2】;【表达式3】)
{
语句组;
};表达式可以省略但是逗号不能省略。一般来说表达式1循环条件赋初值,表达式2判读循环是否结束,表达式3改变循环变量的值。执行表达式1,执行表达式2如果为假跳出循环体如果为真执行语句组再执行表达式3,然后重新执行表达式2。
Break在循环体中跳出本层循环,在switch中跳出该switch语句。
Continue不执行continue以下的语句重新进行循环的判断,
函数(感觉像汇编语言中的段程序)
函数的定义
函数返回值类型函数名(类型名形式参数1 , 类型名形式参数2,类型名形式参数,……)
{
函数变量定义部分;
函数语句部分;
}函数返回值类型可以省略默认为整形,函数定义内部不能再定义新函数。
函数说明(比函数定义在形式参数那里多了中括号)说明在哪里就用在那里
函数返回值类型>函数名(类型名[形式参数1],类型名[形式参数2],类型名[形式参数],……)
函数的调用
函数名(实参表);当调用无参函数时实参表可以省略。实参表要与函数说明一致。
函数调用的位置1单独的函数语句调用,2在表达式中调用,3作为函数参数调用。
函数返回值
Return(表达式);
Return;表达式必须与主函数<函数返回值类型>相同或者兼容。
指针与数组
&取地址运算符,&变量名,表示变量在内存中的地址;
*指针运算符,*指针变量名,表示引用指针变量所指向的变量的值。指针变量:存有地址的变量p=&a则*p=a 指针变量的定义,类型名*指针变量1 ,*指针变量2,……
指针变量的赋值,指针变量=&变量,指针变量=地址变量、数组等。指针变量只能是地址其他的拒绝赋值。
指针变量的引用,*指针变量
Sizeof(指针变量名)获取指针变量占用的内存大小。
指向函数的指针(函数的调用为入口地址代码的执行,一般的指针指向变量这个指向函数)
函数指针的定义
<函数返回值类型>(*函数指针变量名)();
函数指针的赋值
初始化,<函数指针变量名>(*函数指针变量名)()=函数名称;
赋值格式,函数指针变量名=函数名称;
函数指针的调用
函数指针变量名(实参表);
(函数指针变量名)(实参表);
(*函数指针变量名)(实参表);
数组
一维数组定义,数组名[n];
一维数组的初始化,数组名[n]=(元素1,元素2,……元素n);或者数组名[]=(元素1,元素2,……元素n);数组占用内存计算,sizeof(数组名)=sizeof(数据类型)*元素个数。
数组的引用,数组名称[下标];
二维数组定义,数组名[x][y];(x行y列);
二维数组的初始化,数组名[x][y]={
{a11,a12,a13,……};
{a21,a22,a23……};
……
};
二维数组的引用,数组名[下标1][下标2];
Malloc函数,在内存动态储存区分配一个连续长度为size的空间
Void *malloc (unsigned int size);当无法分配是返回null
Free函数,释放*P指向的内存。
Void free (void *p);
Calloc函数,开辟一维组数内存空间。
(类型说明符)calloc(n,size)在内存中分配n块长度为size的地址空间,返回值为地址入口。
typedef为已经存在的数据类型重命名。
Typedef 类型名标识符;typedef int a;(以后int就叫a)
位运算
<<左移,优先级2,a<<2相当于a=a*22。
>>右移,优先级2,a<<2相当于a=a/22。<<= ,&=,^=,|=,
~按位取反,优先级1,运算对象置于右边,运算对象二进制反位。
&按位与,优先级3,把参与运算的两数各对应的二进制相与。
^按位异或,优先级4,
|按位或,优先级5,
结构体(不能用运算符运算结构体,但是可以return 结构体里面可以是另一个结构体)