C语言的一些复习

main 函数 2种:

  1--》
  int main(void) //括号里的void可以去掉
  {
    return 0;
  }//无参数形式
  2--》
  int main(int argc, char *argv[])
  {
    return 0;
  }//带参数形式


 

c语言学习记录

1、格式化输入输出:

动态设置输出宽度和精度
printf("%*.*f*\n",m,n,f);其中m对应第一个*,设置输出宽度,n对应第二个*,设置精度
printf函数有返回值,是输出字符的数量
采用堆栈内存结构,堆栈中的数据采用”后进先出“的方式,对遇printf参数,总是按从后到前的方式存入堆栈中
例子:

1 int main()
2 {
3   int i;
4   i = 3;
5   printf("%d\t%d\t%d\t%d\t%d\t", ++i,--i,i--,i++);
6   ......
7 }

分析:
输出:3 2 4 3
先将参数从右到左计算后存入堆栈中,依次压栈。。。3,4,2,3(从栈底向栈顶),再出栈显示
scanf("%d%*d%d", &a,&b);
输入时将会忽略第二个输入值

getchar() 与 getch()的区别

getchar()会将用户的输入存入缓冲区,而getch()会直接读取用户输入,不会等到用户输入回车就会返回值


 

2、类型结构定义

结构定义:
struct 结构名
{
  变量;
  。。。
}[变量]。。。;


#define 新名字 旧名字 //宏定义
例子: #define OK 1


类型说明,可以用户自定义类型的标识
typedef 原类型名 新类型名;
比如:
typedef struct data
{
  结构内的变量类型说明;
  。。。。。。
}新的类型名DATA;

定义的新的类型名可以代替 struct data ,直接DATA mydata;


 

3、内存管理

分配内存函数:
1) malloc(字节数量);

double *p = (double *)malloc(100*sizeof(double));

2) calloc();  进行动态分配内存

void *calloc(size_t count,size_t size);

count 代表要分配元素的数量 size代表每个元素占用的字节数
3)调整已经分配内存的函数:

void *realloc(void *ptr, size_t newsize);

ptr指向已经存在的内存首地址 将大小改为newsize大小,分配成功则返回指向新地址的指针,否则NULL
在扩展分配时,原始数据保持不变
4)释放内存函数

void free(void *p);

 释放指针p所指向的内存
一般的写法: free(p); p = NULL;

4、文件操作

定义文件指针
  FILE *fp;
打开文件:
  FILE *fopen(const char *filename, const char *mode);
  fp = fopen("路径","r");    //注意路径在windows下反斜杠: C:\\dev-cpp\\test......注意转移字符的运用
关闭文件
  fclose(FILE *fp);
例如: fclose(fp);
向文件中输出字符

  putc();或者 fputc();字符串 fputs();fprintf();
  读取 getc(); 或者 fgetc(); 字符串 fgets();fscanf();

5、存储类型

register 寄存器变量
extern 外部变量 //应用体会
static 静态变量
外部变量例子:
两个文件 main.c test.c

main.c................
int i,j;
int main()
{
....
return 0;
}

 

test.c................
extern int i,j;
int myfunction()
{
......
return 0;
}

静态变量可以保存多次计算之后得出的额值,即允许对其进行多次修改

 

posted on 2016-04-22 20:49  NAVERON  阅读(202)  评论(0编辑  收藏  举报

导航