c语言基础1


1.变量
-------标量和常量是按值传送的,数组是以引用形式进行的,也就是按址传送。在函数中对标量参数的任何修改都会在函数返回时丢失的。
-------所有传递给函数的参数都是按值传送的。但是,当数组名作为参数时就会产生按引用传递的效果,规则和行为之间似乎存在明显的矛盾之处。
2.编译和链接
-------编译,编译是由编译器将用户源代码编译成若干个目标模块
-------链接,由链接程序将编译后形成的一组目标模块以及他们所需的库函数链接在一起,形成一个完成的装入模块
-------由装入程序将装入模块装入内存
-------编译和链接都是为将用户程序从硬盘上调入内存并将其转换为可执行程序服务的。
-------编译是将高级语言翻译成机器识别的机器语言,链接分为静态链接,装入时动态链接和运行时动态链接。
cc -c   main.c     可以加-o  name  在末尾使用-lname会在链接时同时在name库中查找
3.数据
------整型家族包括字符、短整型、整型、长整型,他们都有有符号和无符号两种。
------规定整型值之间大小的规则很简单:长整型至少应该和整型一样长,而整型至少应该和短整型一样长。


4.指针
-----变量的值存在于内存中,每一个变量占据一个特定的位置,每一个内存位置都由地址唯一确定并引用。就像一条街道上的房子由他们的门牌号码
-----标识一样,指针只是地址的另一个名字罢了。
-----(1)指针常量
    int  const  *pci   指向整型常量的指针。你可以修改指针的值,但你不可以修改它所指向的值
    int *const pci     指向整型的常量指针,因此指针是常量,它的值无法修改,但你可以修改它所指向的值
    int const cont * pci 无论指针还所指向的值都是常量,无法修改。
5.链接属性
------链接属性一共有三种,external,internal和none。没有链接属性的标识符总是被当做单独的个体,也就是说标识符的多个声明被当做独立不同
的实体。属于internal链接属性的标识符在同一个源文件内的所有声明中都指向同一个实体,但位于不同源文件的多个声明则属于不同的实体。最后,属于external的
链接属性的标识符不论声明多少次,位于几个源文件都表示同一个实体
6.static
--------当他用于函数定义时或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external到internal,但标识符的存储
类型和作用域不受影响。用这种方式声明的函数或变量只能在声明他们的源文件中访问。当他们用于代码块内部的变量声明时static关键字用于修改变量的
存储类型从自动变量修改为静态变量但变量的链接数性和作用域不变。用这种方式声明的变量在程序执行之前创建,并在程序执行的整个过程中存在。

posted @ 2011-03-28 17:26  jerryking  阅读(207)  评论(0编辑  收藏  举报