Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124868
  • 博文数量: 20
  • 博客积分: 911
  • 博客等级: 准尉
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-03 21:02
文章分类
文章存档

2010年(4)

2009年(3)

2008年(13)

分类: LINUX

2009-04-02 21:56:26

C语言基本知识总结

C语言是计算机专业最为重要的知识,有了扎实的C语言基础,才能在学习计算机其他技术的过程中有大的收获.其中有关指针等知识掌握起来比较困难.现在就将C语言中的难点和重点知识做一总结,以使更多的C语言学习者打好基础.

一 指针

指针中保存的是另一个变量的地址变量

具体应用

(一)指针说明

  1> int *p

     p是一个指针,指向一个整型数

  2>int *p()

     p是一个函数,返回一个指向整数的指针

  3>int (*p)()

   p是一个指针,该指针指向一个函数,这个函数返回一个整数。

 4>int *p[]

   p是一个数组,该数组的每一个元素是指向整数的指针。

 5>int (*p)[]

   p是一个指针,该指针指向一个数组,这个数组的每一个元素是一个整数。

 6>int *(*p)()

   p是一个指针,该指针指向一个函数,这个函数返回一个指向整数的指针。

   (二)指针的初始化

  1>通过符号&取变量;

  2>把数组名赋给指针;

  3>把函数名赋给指向函数的指针;

  4>动态分配内存。

   (三)指针与数组,函数的关系

  1>对于一维数组int a[i]或指针int *a  a+i指向a[i]

  2>对于字符串char s[i]或指针char *s s+i指向第i个字符s[i]

  3>对于二维数组int a[i][j] *a+j指向a[0][j]*(a+i)指向a[i][0]*(a+i)+j指向a[i][j]

  4>对于字符串数组char p[i][j]或字符型指针数组char *p[i] *p+j指向第0个字符串的第j个字符;*(p+i)指向第i个字符串的第0个字符;*(p+i)+j指向第i个字符串的第j个字符。

  5>对于指针数组int *a[i]  a[i]指向变量i,即*a[i]=变量ia[i]=&变量i

  6>对于struct XY  (int x,,int *y)*p   p是指向结构XY的指针

(*p).xp->x是表示x的内容;

(*p).yp->y是表示指针y的值(为地址);

*(*p).y*p->y是表示y所指的内容;

&(*p).x&p->x是表示x的地址

  7>指向函数的指针

  对于 void func(char *str)

  {}; //定义了一个函数

  void (*p)(char*);//定义了一个函数指针

  p=func; //让指针指向函数

  则(*p)(""); //用指针p可以调用函数func

 8>指向多个不同函数的指针数组

  对于void function_1() {};

  …

  void function_4() {}; //定义了四个函数

  typedef void(*menu_fcn)();//定义了指向函数的指针

  menu_fcn command[4]; //定义了指针数组

  command[0]=function_1;

  …

  command[3]=function_4; //让指针数组指向四个函数

  则command[0](); //用指针数组中的一个元素调用一个函数

 

C 语言的函数

1.用户自定义函数格式

  类型 函数名(形式参数表)

  参数说明

  {

  ……

  }

2.函数的调用方式

  (1)传值方式

  ①传给被调用函数的是整型、长整型、浮点型或双精度型变量。被调用的函数得定义相应的变量为形参。

  ②传给被调用函数的是结构变量。被调用函数得定义结构变量为形参。

  ③传给被调用函数的是结构变量的成员。被调用函数得定义与该成员同类的变量为形参。

  (2)传址方式

  ①传给被调用函数的是变量的地址。被调用函数得定义指针变量为形参。

  ②传给被调用函数的是数组的地址即数组名。被调用的函数得定义数组或指针变量为形参。

  ③传给被调用函数的是函数的地址即函数名称。被调用函数得定义指向函数的指针变量为形参。

  ④传给被调用函数的是结构的地址。被调用函数得定义结构指针为形参。

3.函数调用(传值方式)结果的返回

  (1)返回的是数值

  要求被调用的函数类型与接收返回值的变量类型相同。

  (2)返回的是指针

  要求被调用的函数是指针函数,其指向的类型与接收的指针变量指向类型相同。

  (3)不返回任何值

  被调用的函数是void型。

 

 

阅读(2042) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~