张C的博客

学习记录的地方

C语言学习笔记


安全的注释方法

#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--------------------------------------------------------

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_36009316/article/details/52381385
个人分类: C语言
想对作者说点什么? 我来说一句

c语言学习笔记,好东西

2009年05月16日 3KB 下载

C语言学习笔记 C语言学习笔记

2010年10月25日 4.34MB 下载

C语言学习笔记基础完整

2016年08月02日 8KB 下载

C语言学习笔记变量数组指针

2010年08月25日 116KB 下载

C语言WinSock学习笔记

2008年03月03日 32KB 下载

没有更多推荐了,返回首页

不良信息举报

C语言学习笔记

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭