您的位置:首页 > 编程语言 > C语言/C++

C语言知识小结

2017-04-30 10:23 225 查看
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  ( 文件指针,格式字符串,输入表列); 函数功能: 

从磁盘文件中读入或输出字符。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息