linux c/c++ 编程之-----C语言基本语法

来源:互联网 发布:知来者之可追古今异义 编辑:程序博客网 时间:2024/06/05 15:54

C语言(语法)-linux


由上面的例子可知,C程序的源代码有下面的特点
(1)程序一般用小写字母书写。
(2)大多数语句结尾必须要分号作为终止符,表示一个语句结束。同一个语句需要写在一行上。
(3)每个程序必须有一个主函数,主函数用main()声明,并且只能有一个主函数。在Linux系统中,main主函数应该是int类型
(4)每个程序中的自定义函数和主函数,需要用一对大括号括起来。
(5)程序需要使用#include <>语句来包含系统文件,这些系统文件完成系统函数的定义。
(6)一个较完整的程序大致包括下面这些内容。

y 包含文件:一组#include <*.h>语句。

y 用户自定义函数:用户已编写的完成特定功能的模块。

y 主函数:程序自动执行的程序体。

y 变量定义:定义变量以存储程序中的数据。

y 数据运算:程序通过运算完成各种逻辑功能。这些运算由各种语句和函数实现的。

y 注释:注释写在/* */符号之间,不是程序的必需部分,但是可以增强程序的可读性。


一些语句:


printf(“格式控制字符串”,输出变量列表) ;

scanf("<格式化字符串>",<地址表>);


++写在后面时,表示取得值然后再自加,

++写在前面时,表示先自加再取值.


转移控制语句

continue ;  //跳过下面语句,直接进入下次循环 

break ;//跳过整个

return ;


数组与指针

定义数组 

int[5] 

int[]  //可以不指定变量的个数,在访问变量时可以动态改变数组中变量的个数。

 

指针:

指针是一种特殊的数据类型,用来存储一个变量的地址。通过一个指针,可以访问这个指针所指向的变量。在使用指针时需要考虑到变量的存储关系


指针操作符 : * & 

*  取变量

& 取地址



指针与数组的关系

定义一个数组的时候,就是定义这个数组的头指针,然后分配若干个存储单元。定义的数组名称是可以直接赋值给一个指针, 而这个指针可以指向这个数组的第一个元素。下面的程序可以说明数组与指针的这种关系。指针可以做加法和减法的算术运算,相当于指针的位置从这一位置向后或向前移动若干个单元。这里移动的单元,指的是可以存储相应的变量的内存空间,而不一定是这么多个字节字符数组是一种特殊的数组。定义一个字符数组以后,这个字符数组会返回一个头指针。可以根据这个头指针来访问数组中的每一个字符



函数

定义函数时,每一个参数都有一个具体的数据类型

在C程序中,如果需要调用后面的自定义函数,需要在程序最前面声明函数。如果未声明,程序就会发生错误,提示程序中找不到相应的函数。

函数的声明方法,是在程序的最前面,列出程序中可能调用的自定义函数。需要列出与函数定义相同的类型名、函数名、参数列表。

main函数是有一个返回值的,如果程序执行成功,则返回一个整型值1。程序中常常省略这个返回值。

argc 是一个整型变量,表示参数的个数。

*argv[]是一个指针型数组,数组中的每一个指针指向一个参数的字符数组


值调用进行函数调用时候,给形式参数分配内存空间,并把实际参数的值直接传递给形式参数。这一过程是参数值的直接传递过程.一旦形式参数获得了值,形式参数的变化对实际参数没有任何影响。

引用调用:当用指针或数组作为函数的参数时,可以用指针来访问实际参数的值。形式参数的变化将直接引起实际参数的变化。


函数返回值

y 用指针来访问主函数中的变量:函数可以通过指针来访问函数外部的变量。这种函数虽然没有返回值,但是对外部变量产生了影响。指针访问外部变量的方式,可以看作是一种特殊的返回值。
y 返回一个指针:指针是一种特殊的数据类型。函数中的指针可以作为返回值返回给主函数。这类函数需要用指针数据类型来声明。


结构体struct

struct student

{

type1 v1;

type2 v2;

}


结构体与指针

struct student * stu;

(*stu).v1; //*stu is a struct

stu->v1  //等价的,->表示指针所指向的变量