C语言知识小结

来源:互联网 发布:幼儿英语网络课程 编辑:程序博客网 时间:2024/06/06 19:10
C语言小结

1.概述
源程序.c
目标程序.obj
可执行目标程序.exe

2.数据类型 运算符 表达式
基本类型--整型,字符型,浮点型
构造类型--数组,结构,联合,枚举
指针类型
空类型

变量命名的规定:
只能由字母,数字,下划线组成,第一个字符必须为字母或下划线

整型数据
int   4个字节 范围:-2^31~2^31-1
short 2个字节 范围:-2^15~2^15-1
long  4/8个字节 

整型数据的溢出

浮点型数据
float        4个字节 有效数字:6~7位
double       8个字节 有效数字:15~16位
long double  16个字节 有效数字:18~19位

浮点型数据丢失精度

字符型数据
1.字符常量 'a'
2.转义字符('\r'回到字符开头 '\b'退格)
3.字符变量
4.字符串常量

运算符
1.算术运算符
2.关系运算符
3.逻辑运算符
4.位运算符(<< >> ~ |∧&)

&--
a&0  一定等于0
a&0xffff  一定等于本身

~(相同为0,不同为1)
5^0   得到的是5  本身
5^5   得到的是零

逗号表达式整体的值,是最后一个逗号后面的表达式的值

Tips:
1.scanf 阻塞函数 当标准输入缓冲区为空时,scanf会处于阻塞状态
2.刷新标准输入缓冲区   清空  fflush(stdin)
3.getch():/getchar()
 所在头文件:conio.h
 函数用途:从控制台读取一个字符,但不显示在屏幕上
例如:
  char ch;或int ch;
  getch();或ch=getch();
  用getch();会等待你按下任意键,再继续执行下面的语句;
  用ch=getch();会等待你按下任意键之后把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
4.长数据赋值给短数据,需要强制类型转换

3.选择
if-else语句
switch语句
格式:
switch(表达式)

case 常量表达式1:语句1
    
case 常量表达式2:语句2
    

    
case 常量表达式n:语句n
         
default:语句n+1   


加break与不加break的区别

4.循环
goto语句
while语句
do-while语句
for语句
break语句和continue语句

5.数组

一维数组的定义和引用
int a[5];
sizeof(a);  数组大小 20个字节

二维数组的定义和引用
字符数组

字符串处理函数
1.puts();gets();

str系列
1.strlen--求字符串的长度
2.strcpy--复制字符串
3.strcmp--比较字符串的大小
4.strcat--拼接字符串

6.指针

直接访问
间接访问
一级指针--存放某一变量的地址
指针变量只能存放地址

引用一个数组元素,可以用:
(1) 下标法,如a[i]形式;
(2) 指针法,如*(a+i)或*(p+i)

二维数组与指针
字符串与指针

指针数组
int *p[4];
数组指针
int (*p)[4];

二级指针
int **p;

7.函数
实参和形参
函数的嵌套调用
函数的递归调用

局部变量和全局变量

自动的(auto)

静态的(static)

寄存器的(register)

外部的(extern)

8.结构体
1)类型与变量是不同的概念
编译时,对类型是不分配空间的,只对变量分配空间
2)不能将一个结构体变量作为一个整体进行输入和输出
3).运算符的优先级最高
4)一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。指针变量也可以用来指向结构体数组中的元素
5)以下3种形式等价:
  结构体变量.成员名 (*p).成员名  p->成员名
6)
p->n得到p指向的结构体变量中的成员n的值。p->n++ 得到p指向的结构体变量中的成员n的值,用完该值后使它加1。++p->n 得到p指向的结构体变量中的成员n的值加1,然后再使用它。
7)
(++p)->num 先使p自加1,然后得到它指向的元素中的num成员值(即10102)。
   (p++)->num 先得到p->num的值(即10101),然后使p自加1,指向stu[1]
8)
malloc();//其函数原型为void *malloc(unsigned int size);其
作用是在内存的动态存储区中分配一个长度为
size的连续空间
calloc();//其函数原型为void *calloc(unsigned n,
unsigned size);其作用是在内存的动态存储区
中分配n个长度为size的连续空间
free();//其函数原型为void free(void *p);其作用
是释放由p指向的内存区,使这部分内存区能
被其他变量使用
9)共用体
使几个不同的变量共占同一段内存的结构
10)枚举类型
11)typedef
#define是在预编译时处理的,它只能作简单的字符串
替换,而typedef是在编译时处理的。实际上它并不是
作简单的字符串替换,而是采用如同定义变量的方法
那样来声明一个类型

9.文件
1)文本文件
2)二进制文件
3)
文件的打开fopen();
文件的关闭fclose();
文件的读写
1)字符输入输出函数(fputc()和fgetc())
fputc函数

函数调用:
fputc ( ch,fp ) ; 函数功能: 
将字符(ch的值)输出到fp所指向的文件中去。 

返回值:
如果输出成功,则返回值就是输出的字符;
如果输出失败,则返回一个EOF。
fgetc函数

函数调用:
ch=fgetc(fp);

函数功能: 
从指定的文件读入一个字符,该文件必须是以读或
读写方式打开的。 返回值:
读取成功一个字符,赋给ch。
如果遇到文件结束符,返回一个文件结束标志
EOF 。
2)数据块读写函数(fread()和fwrite())函数调用:fread (buffer,size,count,fp);fwrite(buffer,size,count,fp); 

参数说明:
buffer:是一个指针。对fread 来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址(均指起始地址)。
size:  要读写的字节数。count: 要进行读写多少个size字节的数据项。
fp:    文件型指针。

3)格式化读写函数(fprintf()和fscanf())函数调用:fprintf ( 文件指针,格式字符串,输出表列);fscanf  ( 文件指针,格式字符串,输入表列); 函数功能: 
从磁盘文件中读入或输出字符。 



0 0
原创粉丝点击