关闭

C语言学习笔记

标签: c语言局部变量注释入门函数
24人阅读 评论(0) 收藏 举报
分类:


安全的注释方法

#if 0

statements

#endif

好处:常规注释是代码在程序中不起作用,但并不能真正从源文件中删除。如果这段代码内部原先就有注释存在,这样做就会出问题。

函数声明

int read_colum_numbers( int columns[], int max );

注释:int表示函数返回值的类型是整型,read_colum_numbers表示函数名字,括号内是函数期望接受的参数——整型数组和整型标量。

main函数

int main( void )

{}

注释:关键字int表示函数返回一个整型值,void表示不接受任何参数。

局部变量

int   n_columns;//进行处理的列标号

int   columns[MAX_COLS];//需要处理的列数

char  input[MAX_INPUT];

char  output[MAX_INPUT];

注释:作为main内部的变量,其他函数不能根据它们的名字访问它们。它们可以作为参数传递给其他函数。

调用函数

n_columns = read_colum_numbers( columns, MAX_COLS );

注释:在c语言中,数组参数是以引用(reference)形式进行传递的,也就是传址调用,而变量和常量则是按值(value)传递的。在函数中对变量的任何修改都会在函数返回时丢失,因此,被调函数无法修改调用函数以传值形式传递给它的参数。然而,当被调函数修改数组参数的其中一个元素是,调用函数所传递的数组就会被实际地修改。

  1. 把声明(如函数原型的声明)放在头文件中,并在需要时用#include指令把它们包含于源文件中,这样做法的好处?

    答:声明只需要编写一次,这样以后维护和修改它时会更容易。同样,声明只编写一次消除了在多份拷贝中出现写法不一致的机会。

    -----------------------------------------------------------P34  8.29--------------------------------------------------------

    总结:

  1. 一个C程序的源代码保存在一个或多个源文件中,但一个函数只能完整地出现在同一个源文件中。

  2. 程序必须载入到内存中才能执行。在宿主式环境中,这个任务有操作系统完成。在自由式环境中,程序常常永久存储与ROM中。

     

    枚举类型

    enum <枚举类型名> {<枚举表>}

    枚举常量是枚举类型中的值,即枚举值。枚举类型是一种用户定义的类型,只有用户在程序中定义后它才能被使用。用户通常利用枚举类型定义程序中需要使用的一组相关的符号常量。

  1. enum color {redyellowblue}//定义了一个枚举类型color,用来表示颜色,它包含三个枚举值:redyellowblue,分别代表红色、黄色和蓝色。

  2. enum day {SunMonTuesWedThurFriSat}

    由于各枚举值常量的值是一个整数,所以可把它同一般整数一样看待,参与整数的各种运算。又由于它本身是一个符号常量,所以当作为输出数据项时,输出的是它的整数值,而不是它的标识符。

    符号名被当作整型常量处理,声明为枚举类型的变量实际上是整数类型。

    指针

    变量的值存储于计算机的内存中,每个变量都占据一个特定的位置。每个内存位置都由地址唯一确定并引用。

    指针常量(pointer constant

    当一个函数每次被调用时,它的局部变量可能每次分配的内存位置都不相同。

    字符串常量(string literal

    一串以NUL字节结尾的零个或多个字符。通常存储在字符数组中。NUL字节是用于终结字符串的。

    声明简单数组

    数组的下标总是从0开始,最后一个元素的下标是元素的数目减1

    声明指针

    int *b, c, d;        <==>         int *b;

      Int c, d;

    声明的同时初始化

    char *message = Hello world!;

    message声明为一个指向字符的指针,并用字符串常量中第一个字符的地址对该指针进行初始化。

    隐式声明

    如果函数不显式地声明返回值的类型,它就返回整型。

    typedef

    #define d_ptr_t0_char *

    d_ptr_to_char  a, b;

    正确地声明了a,但是b却被声明为一个字符。在定义更为复杂的类型名字时,如函数指针或指向数组的指针,使用typedef更为合适。

    声明常量

    int       const  a;

    const     int    a;

    a声明为一个整数,它的值不能被修改。

     

    int*pi;//pi是一个普通的指向整型的指针

    intconst*pci;//pci是一个指向整型常量的指针,可以修改指针的值,但不能修改它所指向的值。

    int*constcpi;//cpi是一个指向整型的常量指针,此时指针是常量,它的值无法修改。

    int const*constcpci;//cpci是一个指向整型常量的常量指针,无论是指针本身还是它所指向的值都是常量,不允许修改。

    #define声明常量

    #defineMAX_ELEMENTS50

    intconstmax_elements50;

    注释:

    在这种情况下,用#defineconst变量更好。因为只要允许使用字面值常量的地方都可以使用前者,比如声明数组的长度,如果一个值必须修改,只需要修改声明就可以了,这样便于程序的维护。const变量只能用于允许使用变量的地方。

    -----------------------------------------------------------P57  8.30--------------------------------------------------------

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:26次
    • 积分:10
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档
    阅读排行
    评论排行