C语言复习总结(含代码例程)

数据类型

基本类型:字符型、整型、浮点型、双精度浮点型
构造类型:数组、指针、结构体、共用体和枚举

字符型:

类型表示: (signed) char = char
-- 有符号 char
unsigned char
-- 无符号 char
类型大小: 8 = 1 个字节
二进制变化: 0000 0000 ~ 1111 1111 = 256 种变化情况
无符号:数字变化 -- 0~255 = 0~2^8-1
有符号:数字变化 -- -128~127 = -2^7 ~ 2^7-1
类型意义:存放字符型数据( ASCII 码表) -- 以某些数字代表某种符号。

整型:

类型表示: int
(signed) int -- 有符号整型
unsigned int -- 无符号整型
short -- 短整型
long -- 长整型
类型大小: int -- 32 位以上的处理器, int 4 个字节,低于 16 位(嵌入式存在 89c51 单片机( 8 位)), 占 2 个字节 -- int 随着芯片的类型,而改变。
short -- 短整型 -------------占 2 个字节
long -- 长整型 --------------占 4 个字节

浮点型:

类型表示: float
类型大小: 4 个字节 -- ------ 精度:小数点后 6
类型意义:存放小数 

双精度浮点型:

类型表示: double
类型大小: 8 个字节 ----------- 精度:小数点后 12
类型意义:存放小数

变量和常量

关键字与标识符

标识符:使用一些字符代表某个具体的事物(名字)。
组成:数字( 0~9 )、字母( a~z A~Z )和下滑线( _ )组成。
注意: 1. 数字不可以放开头
           2.区分大小写
           3.不能与关键字相同

32个关键字

数据关键字12个:char,double,float,enum,unsigned ,int,long,short,signed, struct,union,void

控制语句关键字12个:for,do,while,break,continue,if,else,goto,switch,case,default,return

存储类型关键字4个:auto,extern,regsiter,static

其他关键字4个:const,sizeof,typedef,volatile

常量

C 语言中,不可以修改的量。
字符常量 :单引号括起来 -- ‘A’ -- 一个字符
双引号括起来 -- “ABCD” -- 一串字符:字符串
‘1’ -- 字符 1 -----------------------默认类型:字符型 char
数字常量 1314  ---------------默认类型:int
小数常量 3.14 ---------------默认类型:double
double > int >char(优先级)
‘A’ + 10 -- 默认的结果是 int
3.14 * 10 = 默认的结果是 double

变量

变量:程序运行时,可以修改的量。
变量如何定义:
类型 标识符 ; ------- 定义 1 个变量           例如:int  num;
类型 标识符 = xx;------ 定义并且给变量赋初值   int num = 20;
1. 定义 1 个变量
2. 计算机就会在内存中,根据变量的类型,开辟相应的空间,存储数据。
3. 通过变量名 ( 标识符 ) 来操作该变量空间。

运算符

赋值运算符: =
        
算数运算符: + - * / %
        /:两个整型数操作,结果还是整型数
        例如:5/2 = 2
        %:求余 -- 除尽之后留下的数     5%2 = 1
        5%2.0 -- 错误 -- 小数不参与求余
条件运算符 ( 关系运算符 ):
        >(大于 )  >= (大于等于) < (小于) <= (小于等于) ==(恒等于) != (不等于)
逻辑运算符: && (逻辑与) || (逻辑或) ! (逻辑非)
        C 语言编译器: 0 -- 结果假   1 -- 结果真
        &&:表达式中 1 个为假,结果为假
        ||:表达式中 1 个为真,结果为真
        !:结果取反
赋值复合运算符 :   num = num+1 ===== num +=1;
        += -= *= /= %=
自增自减运算符 ++  --
        num-- -- 先用后减   
        --num -- 先减后用
位运算符 &  |  ~  << >>  ^
三目运算符: max = (num1>num2)?num1:num2;

流程控制语句

if …… else ……
switch() …… case ……
for()
while()
do …… while()
continue
break
goto
return
顺序执行:
        从 main 函数开始,到 main 函数结束。
        从上到下,从左到右。

continue和break的区别

continue -- 用于循环,跳出本次循环。
        -- 遇到 continue -- 后续代码不执行。
break -- 用于循环和 switch ,跳出本层循环。
#include <stdio.h>
int main()
{
	for(int num=1; num<12; num++)
	{
		if (num % 2 == 0) //如果是偶数,跳过当前迭代
        	continue;
    	else if (num == 7)  //如果是7,跳出循环
        	break;
    	printf("num = %d\n",num);
	}
	return 0;
}

运行结果:

数组

数组的特点: 相同类型数据的集合;数据地址连续
数组类型如何表示: 类型 [数组长度];      例如 int [10]
        
数组变量的定义:
        类型 标识符[ 长度 ];   例如:10个人的身高  int high[10];
        类型 标识符[ 长度 ]={初值};  3个人的具体身高  int high[3] = {120,178,180};
如何表示单个元素: 数组名 [ 下标 ];
#include <stdio.h>
//排序(小--高),并且在终端输出
int main()
{
    int num1[5] = {5, 10, 2, 3, 7};
    int i = 0, j = 0;
    int temp = 0;
    for(i = 0; i < 5; i++)//数组中有 5 个位置
    {
        for(j = 0; j < 5-i; j++)
        {
            if(num1[j] > num1[j+1])
            {//冒泡比较
                temp = num1[j+1];
                num1[j+1] = num1[j];
                num1[j] = temp;
            }
        }
    }
    for(i = 0; i < 5; i++)
    {
        printf("%d\t", num1[i]);
    }
	printf("\n");
    return 0;
}
运行结果:

指针

指针的意义:
        指针就是 1 个类型,该类型代表是地址
如何表示:类型 *                 类型表示指针(地址)存储数据的类型
                                        char int float double 数组 指针 结构体等等
描述地址: 1 个空间里面存放的是字符型数据,就是 char * 表示
描述地址: 1 个空间里面存放的是整型数据,就是 int* 表示
描述地址: 1 个空间里面存放的是浮点型数据,就是 float* 表示
描述地址: 1 个空间里面存放的是双精度浮点型数据,就是 double * 表示
类型大小:        
        32 位计算机 -- 4 个字节
        64 位计算机 -- 8 个字节
指针类型如何表示? -- 类型: 指向 空间的类型
类型 *
//char * -- 描述该地址中存放的是 char 型数据
//int * -- 描述该地址中存放的是 int 型数据
//float * -- 描述该地址中存放的是 float 型数据
//double * -- 描述该地址中存放的是 double 型数据

函数

函数是程序的最小组成单位。
函数的定义(如何表示):
类型 函数名 ( 参数 1, …… )// 函数头
{
        //函数代码开始的位置
        程序/ 代码 ;// 函数体
}
函数名的组成:
1. 字母 数字 下划线组成
2. 数字不可以放开头
3. 区分大小写
4. 不能与关键字相同
  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我可以回答这个问题。以下是一个简单的C语言Windows服务端例程代码: #include <stdio.h> #include <stdlib.h> #include <windows.h> SERVICE_STATUS ServiceStatus; SERVICE_STATUS_HANDLE hStatus; void ServiceMain(int argc, char** argv); void ControlHandler(DWORD request); int main() { SERVICE_TABLE_ENTRY ServiceTable[2]; ServiceTable[0].lpServiceName = "MyService"; ServiceTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain; ServiceTable[1].lpServiceName = NULL; ServiceTable[1].lpServiceProc = NULL; StartServiceCtrlDispatcher(ServiceTable); return 0; } void ServiceMain(int argc, char** argv) { ServiceStatus.dwServiceType = SERVICE_WIN32; ServiceStatus.dwCurrentState = SERVICE_START_PENDING; ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP; ServiceStatus.dwWin32ExitCode = 0; ServiceStatus.dwServiceSpecificExitCode = 0; ServiceStatus.dwCheckPoint = 0; ServiceStatus.dwWaitHint = 0; hStatus = RegisterServiceCtrlHandler("MyService", (LPHANDLER_FUNCTION)ControlHandler); if (hStatus == (SERVICE_STATUS_HANDLE)0) { return; } ServiceStatus.dwCurrentState = SERVICE_RUNNING; SetServiceStatus(hStatus, &ServiceStatus); while (ServiceStatus.dwCurrentState == SERVICE_RUNNING) { Sleep(1000); } return; } void ControlHandler(DWORD request) { switch (request) { case SERVICE_CONTROL_STOP: ServiceStatus.dwWin32ExitCode = 0; ServiceStatus.dwCurrentState = SERVICE_STOPPED; SetServiceStatus(hStatus, &ServiceStatus); return; default: break; } SetServiceStatus(hStatus, &ServiceStatus); return; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值