NeatUpload 同时选择并上传多个文件

1、“编译预处理”是C编译系统的一个组成部分,主要有三种功能:文件包含、宏定义和条件编译。这些命令都以#开头作标志。

文件包含  #include

宏定义     #define

条件编译  

2、不带参数的宏定义

  一般形式: #define   标识符   字符串   例:# define  PI  3.141592654 

说明:

NeatUpload 同时选择并上传多个文件

 

 

 

 

 

 

 

 

 

3、带参数的宏定义

1、宏要实现简单的函数功能,参数使用是比不可少的。由于宏常常限制,因此只能实 现简单的函数功能。

说明:宏引用形式与函数调用相似,但两者的实现过程完全不同。宏代换是在程序的   编译预处理时完成的,函数是在程序执行时解释的。

注意:D(3)=x*F(x)        先用x替换展开

           =x*x-2         进一步对F(x)展开,这里没有括号

          =3*3-2         最后把x=3代进去计算

          =7

所以:D(D(3))=D(7)  就是大错特错了,没有坚持先替换的原则

4、文件包含

#include “文件名”(系统先在被包含文件的源文件所在文件目录中寻找,若找不到, 再将系统指定的标准方式检索其他目录。)

#include <文件名>(直接在系统指定的标准方式检索其他目录。)

5、条件编译

#ifdef<标识符> 程序段1

#else  程序段2

#endif

它的功能是:当指定标识符已经被定义过(一般用#define命令定义),则对程序段1进行编译,否则对程序段2进行编译。 

#ifndef<标识符> 程序段1

#else  程序段2

#endif

它的功能是:若指定的标识符未被定义则编译程序段1,否则编译程序段2。这种形式的功能和第一种形式的功能相反。 

# if表达式 程序段1

# else  程序段2

# endif

它的功能是:当指定的表达式为真(非零)时.编译程序段1,否则编译程序段2。应用这种条件编译的方法,可以事先给定某一条件:使程序在不同的条件下执行不同的功能。

 

第九章,指针

1、&:含义: 取变量的地址;单目运算符;优先级: 2;结合性:自右向左

   *:含义: 取指针所指向变量的内容;单目运算符;优先级: 2;结合性:自右向左

      互为逆运算

2、i_pointer-----指针变量,它的内容是地址量

   *i_pointer----指针的目标变量,它的内容是数据

   &i_pointer---指针变量占用内存的地址

   i_pointer  =  &i  =  &(*i_pointer)

   i = *i_pointer = *(&i)

3、直接访问:按变量地址存取变量值:i=3;

   间接访问:通过存放变量地址的变量去访问变量:*i_pointer=20;        

4、指针变量的定义

一般形式:[存储类型](指针变量本身的存储类型)数据类型(指针的目标变量的数据类型)  *指针名;

*表示定义指针变量,不是‘*’运算符。

注意:

1)int   *p1, *p2;   与   int   *p1, p2;

2)指针变量名是p1,p2 ,不是*p1,*p2

3)指针变量只能指向定义时所规定类型的变量

4)指针变量定义后,变量值不确定,应用前必须先赋值

5、指针变量的初始化

一般形式:[存储类型] 数据类型 *指针名=初始地址值(赋给指针变量,不是赋给目标变量);

 

NeatUpload 同时选择并上传多个文件

NeatUpload 同时选择并上传多个文件

 

 

 

 

 

 

 

6、地址传递实现排序:

 

NeatUpload 同时选择并上传多个文件

NeatUpload 同时选择并上传多个文件

 

 

 

 

 

 

 

 

 

 

 

 

7指针与数组

指向数组元素的指针变量

例   int   array[10];

         int   *p;

        p=&array[0];         //? p=array;

或   int  *p=&array[0];

或  int   *p=array;

数组名是表示数组首地址的地址常量

8、指针的运算

指针变量的赋值运算

p=&a;             (将变量a地址Tp)

p=array;          (将数组array首地址Tp)

p=&array[i];   (将数组元素地址Tp)

p1=p2;            (指针变量p2值Tp1)

不能把一个整数Tp,也不能把p的值T整型变量

指针变量与其指向的变量具有相同数据类型

9、指针的算术运算:

P ± i <=> p ± i * d  (i为整型数,d为p指向的变量所占字节数)

p++, p--, p+i, p-i, p+=i, p-=i等

若p1与p2指向同一数组,p1-p2=两指针间元素个数?(p1-p2)/d

p1+p2  无意义

10、指针变量可以指到数组后的内存单元

11、字符指针初始化:把字符串首地址赋给string? char  *string;

     string=“I love China!”;

 int   *p={1,2,3,4,5};       (′)

 

NeatUpload 同时选择并上传多个文件

 

 

 

 

 

 

 

 

 

 

 

 

 

12、

NeatUpload 同时选择并上传多个文件

 

 

 

 

 

 

Sizeof()既不是宏定义,也不是函数,值与malloc()相对应。

Strcmp()对两个字符串从左至右逐个比较,直到遇到不同的字符或‘\0’为止。

 

13、

NeatUpload 同时选择并上传多个文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14、例  int   i, **p;

      p=&i;       (′)//p是二级指针,不能用变量地址为其赋值

15、用*p可输出地址(%o或%x), 也可用它输出字符串(%s)

16、

NeatUpload 同时选择并上传多个文件

NeatUpload 同时选择并上传多个文件

上一篇:ehcache 的配置


下一篇:http://115.28.58.215:88/profile/pickup?ww_name=仝建琴&udid=10050cb5ec507dafca24e10a403f8c615ff46898