C的阶段总结(一)

来源:互联网 发布:网络棋牌室 编辑:程序博客网 时间:2024/05/16 13:53

1.老师的数字:

运算

3 控制语句中有三大类 循环 分支 跳转
3 循环 while do……while for
4 跳转 goto continue break return
5 分支 if else switch case default

函数

运算符是特殊的函数

运算符:
初级运算符
单目运算符
算术运算符
关系运算符
逻辑运算符
条件运算符
赋值运算符
逗号运算符

数据:

6:存储类型
4:数据类型的修饰符: long sign unsign shot
5:基本类
5:复合类

函数库 15+9
15个标准库 9个后加标准库

2.函数指针(此段来自百度)

  函数指针是指向函数的指针变量。
  因而函数 指针本身首先应是指针变 量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地 址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上一致的。函数指针有两个用途:调用函数和 做函数的参数。函数指针的说明方法为:
  数据类型标志符 (指针变量名)(形参列表);
  注1函数类型说明函数的返回类型,由于()的优先级高于*,所以指针变量名外的括号必不可少,后面的形参列表表示指针变量指向的函数所带的参数列表。例
  int func(int x); /* 声明一个函数 */
  int (*f) (int x); /* 声明一个函数指针 */
  f=func; /* func函数的首地址赋给指针f */
  赋值时函数func不带括号,也 不带参数,由于func代表函数的首地址,因此经 过赋值以后,指针f就指向函数func(x)的代码的首地址。
  注2:函数括号中的形参可有可 无,视情况而定。
  下面的程序说明了函数指针调用函数的方法:
  例一、
  #include<stdio.h>
  int max(int x,int y){ return(x>y?x:y); }
  void main()
  {
  int (*ptr)(int, int);
  int a,b,c;
  ptr=max;
  scanf("%d,%d",&a,&b);
  c=(*ptr)(a,b);
  printf("a=%d,b=%d,max=%d",a,b,c);
  }
  ptr是指向函数的指针变量,所 以可把函数max()赋给ptr作为ptr的值,即把max()的入 口地址赋给ptr,以后就可以用ptr来调用该函数,实际上ptrmax都指向同一个入口地址,不同就是ptr是一个指针变量,不像函数名称那样是死的,它可以指向任何函数,就看你像怎么做了。在程序中把哪个函数的地址赋给它,它就指向哪个函 数。而后用指针变量调用它,因此可以先后指向不同的函数,不过注意,指向函数的指针变量没有++--运算,用时要小心
  不过,在某些编译器中这是不能通过的。这个例子的补充如下。
  应该是这样的:
  1.定义函数指针类型:
  typedef int (*fun_ptr)(int,int);
  2.申明变量,赋值:
  fun_ptr max_func=max;
  也就是说,赋给函数指针的函数应该和函数指针所指的函数原型是一致的。
  例二、
  #include<stdio.h>
  void FileFunc()
  {
  printf("FileFunc/n");
  }
  void EditFunc()
  {
  printf("EditFunc/n");
  }
  void main()
  {
  void (*funcp)();
  funcp=FileFunc;
  (*funcp)();
  funcp=EditFunc;
  (*funcp)();
  }

原创粉丝点击