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

C语言第二回合:关键字和命名规则

2014-11-17 17:09 253 查看
C语言第二回合:关键字和命名规则

【学习目标】

1.        简介字符集

2.        关键字

3.        关键字sizeof

4.        标识符

5.        typedef和#define的区别

6.        static

 

A:字符集

定义:字符集是C语言源程序的基本字符的集合。字符集是组成C语言的基本元素。

由下面的字符构成:

1.26个英文字母: A~ Z, a~ z

2.数字字符:0~9

3.特殊字符:

空格  !  % #  ^  & *   _

+  =  -  ~  <  > |  /  \

等等(不写了,自个去找吧^_^)

 

B: 关键字

关键字:是C语言中预定的词,我们不能再去定义它。

关键字   意 义

1.        auto       声明自动变量,缺省时编译器一般默认为auto

2.        int        声明整型变量

3.        double     声明双精度变量

4.        long       声明长整型变量

5.        char       声明字符型变量

6.        float       声明浮点型变量

7.        short       声明短整型变量

8.        signed      声明有符号类型变量

9.        unsigned    声明无符号类型变量

10.    struct      声明结构体变量

11.    union      声明联合数据类型

12.    enum       声明枚举类型

13.    static      声明静态变量

14.    switch     用于开关语句

15.    case       开关语句分支

16.    defalut     开关语句中的"其他"分支

17.    break      跳出当前循环

18.    register    声明寄存器变量,可提高效率,但个数有限

19.    const      声明只读变量

20.    volatile    说明变量在程序执行中可被隐含地改变

21.    typedef    用以给数据类型取别名(当然还有其他作用 )

22.    extern     声明变量是在其他文件正声明(也可以看做是引用变量 )

23.    return     子程序返回语句 (可以带参数,也可不带参数)

24.    void       声明函数无返回值或无参数,声明空类型指针

25.    continue   结束当前循环,开始下一轮循环

26.    do         循环语句的循环体

27.    while      循环语句的循环条件

28.    if         条件语句

29.    else       条件语句否定分支 (与if连用 )

30.    for        一种循环语句 (可意会不可言传 )

31.    goto       无条件跳转语句

32.    sizeof      计算对象所占内存空间大小

 

C:sizeof的使用

Sizeof是关键字,要特别注意,它不是函数,仅仅是披着”函数皮“的关键字!

作用:变量所占的字节和类型的大小。(测试在win7 32位环境下)

//sizeof()的使用
#include <stdio.h>

int main( void )
{
int number; // 定义int型变量number

printf( "%d\n", sizeof( number ) );   // 4
printf( "%d\n", sizeof number );      // 4,计算变量所占空间可以省略括号
printf( "%d\n", sizeof( int ) );      // 4
//printf( "%d\n", sizeof int ); //错误!!计算类型大小,不允许省略括号
return 0;
}


D: 标识符

标识符就是由字母、数字和特殊符号”-“(下划线)所组成的标志。如变量名、符号常量名、函数名、类型名、文件名都是。标识符可以随便的命名,但是,最好规范的命名!为标识符取具有实际意义的名称,可以提高程序的可读性,增强程序的文档信息^_^)

 

标识符的命名规则:(必须遵守!!)

(1)必须有字母(A~Z,a~z)或下划线(_)为开头

(2)其后面可以跟随任意的字母、数字或下划线

(3)区分大小写字母。(main,Main和MAIN都是不同的)

(4)不能用关键字作为标识符 (关键字有其他作用,不能混淆)

 

E:typedef与#define的区别

  typedef的作用给已存在的数据类型取一个变量

    格式:typedef 类型名 标识符; 

  #define 成为宏替换,只是简单的替换

    格式:#define 标识符 字符串

 举例说明:

(1)

   

#define INT32 int   //#define仅仅是简单的替换
unsigned INT32 i= 1; // 等同于unsignedint i= 1;

typedef int int32;
unsigned int32 i= 1; //编译报错,因为typedef取的别名不支持这种类型扩展


  (2)

     

#definePCHAR char*  //#define仅仅是替换,所以等于
PCHAR p1,p2;        //等价于char *p1,p2; p1是指针变量,而p2是字符变量
typedef char* pchar;
pchar p3, p4;  //等价于char *p3,*p4;声明了两个指针变量


F:static的作用

static 可以修饰变量,表示存储方式是静态的

static 可以修饰函数,表示函数的作用域仅在被定义的文件中

 

#include <stdio.h>

static int num; //全局静态变量,作用仅在该文件内
//自动初始化为0

void print( void )
{
static int n= 0; //print函数内的静态局部变量
//每次调用都保存前一次的值
n++;   //n= n+ 1;

printf( "%d\n",n );

return ; //不返回空,仅作为该函数的结束标志
}

int main( void )
{
printf( "全局变量num=%d\n", num );
printf( "第一次调用, n=");
print();

printf( "第二次调用, n=" );
print();

return 0;
}


 

打印的结果:

全局变量num= 0

第一次调用, n= 1

第二次调用, n= 2

 

【指尖的微笑】错误在所难免,希望得到大家的指正^-^

转载时保留原文的链接http://oursharingclub.joinbbs.nethttp://blog.csdn.net/mirrorsbeyourself
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: