zoukankan      html  css  js  c++  java
  • 110.C语言_基础知识

    第一章  基础知识

    • 1.1  基本框架
      • //任何一个c语言程序都必须包括以下格式:
        int main(int argc, char *argv[] )
        {
        return 0;
        }
        //这是c语言的基本结构,任何一个程序都必须包含这个结构。括号内可以不写任何内容,那么该程序将不执行任何结果。
      • 1.1.1  main()
        • 在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。
          main(int argc,char**argv) {}  第一个参数是表示输入的字符串的数目,第二个参数是指向存放的字符串
        • 1.1.1.1  C语言中int main()和int main(void)区别
          • 1.K&R书上main函数定义写成main(){...} 形式,不写返回值类型也不写参数列表,这是Old Style C的风格。
            Old Style C规定不写返回值类型就表示返回int型,不写参数列表 就表示参数类型和个数没有明确指出。
            这种宽松的规定会导致很多复杂的Bug产生,不幸的是现在的C标准为了兼容旧的代码仍然保留了这种语法。
            
            2. 其实系统在调用main函数时是传参数的,所以main函数最标准的形式应 该是int main(int argc, char *argv[])。
            C标准也规定了int main(void) 这种形式,如果不使用系统传进来的两个参数也可以写成这种形式。
            但除了这两种形式之外,以其它形式定义main函数都是错误的或不可移植的。
        • 1.1.1.2  标准形式
          • 在最新的 C99 标准中,只有以下两种定义方式是正确的:
             int main(void){}
             //整数类型主函数(无类型) = int main()
             int main(int argc,char **argv)
              //整数类型主函数(整数类型 统计参数个数,字符类型*数组指针至字符[])
        • 1.1.1.3  C++98中的定义
          • 如下两种main函数的定义方式:
            int main( )
            int main( int argc, char *argv[] )
      • 1.1.2  函数体
        • 被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容.
          在{  }里面每一句话后面都有一个分号(;),
          在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。
      • 1.1.3  #include<stdio.h>
        • 1.1.3.1  注意
          • (1)以#号开头
          • (2)不以分号结尾 
          • (3)# include”stdio.h”也是对的
        • 1.1.3.2  预处理
          • 这一行没有分号,所以不是语句,在c语言中称之为命令行,或者叫做“预编译处理命令”。 编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
        • 1.1.3.3  # include “stdio.h”与#include <stdio.h>区别
          • <>搜索顺序为:系统目录-->环境变量目录-->用户自定义目录。
          • ""则是用户自定义目录-->系统目录-->环境变量目录.
        • 1.1.3.4  文件包含的考查点:
          • 这里一个C语言程序是有两个文件组成,分别是no1.c, no2.c。那么no1.c中最开始有个#include”no2.c”他表示把第二个文件的内容给包含过来,那么no1.c中调用add()函数的时候就可以了把数值传到no2.c中的被调用函数add()了。
          • 一个文件必须要有main函数。这句话错了。例如:no2.c就没有。
          • 头文件一定是以.h结束的。这句话错了。例如:no1.c中就是#include”no2.c”以.c结尾的。
      • 1.1.4  注释
        • 程序中以 /*开头并且以*/结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。
        • 注意:1.F      //      /*
        • */
        • 2.F      /*    /*  */     */
        • 3.T     //    //
    • 1.2  C程序的生成过程
      • C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件。  
      • 编译过程
      • 源程序的扩展名为 .c  -(编译)-> 目标程序的扩展名为  .obj  -(连接)->可执行程序的扩展名为 .exe 。
    • 1.3  标识符
      • 概念
        • 在编写程序时,必须为函数、变量等命名,这个名字称为标识符。
      • 1.3.1  标识符分类(都是·小写)
        • ①关键字(32个)(有固定含义,不可改变)
          • 类型说明符:int,float,double等
          • 语句定义符:if,for,while等
        • ②预定义标识符(有特殊含义,可以改变)
          • 库函数的名字:printf , scanf 等
          • 编译预处理命令名:include等
        • ③用户自定义的标识符  
          • ⅰ格式合法,ⅱ不能使用关键字,ⅲ见名知意
      • 1.3.2  关键字
        • 关键字是具有特定含义的,专门用来说明c语言特定成分的一类标识符,不能用作用户的标识符。
          • auto break       case        char          union
          • do         double     else        enum     extern
          • goto           if     int        long short
          • signed          static        sizeof      struct       switch
          • unsigned void for    while        typedef
          • continue    float     return          typedef     default
      • 1.3.3  预定义标识符
        • 预定义标识符在c语言中也有特定的含义,但可以用作用户标识符,预定义标识符分为两类:
          • (1)、库函数名字,比如(printf,scanf,sin,isdigit等)
          • (2)、编译处理命令名,比如(define,include)
      • 1.3.4  用户标识符
        • 用户根据需要自己定义的标识符称为用户标识符。无论如何自定义标识符,都必须符合标识符的三条命名规则。
        • 注意:正常系统函数由_开头,因此不建议自定义函数以下划线开
      • 1.3.4.1  命名规则
        • C语言中标识符的命名规则如下:
          • 1、标识符只能由字母、数字、下划线组成;
          • 2、标识符的第一个字母必须是字母和下划线;(开头)
          • 3、标识符区分大小写字母,如If和if是两个完全不同的标识符。
        • 合法标识符如下:
          • A6       b_3   _mn   _
        • 非法的标识符如下:
          • ab#12, 8m , tr3:4 , yes no
        • 标识符不能与程序中具有特殊意义的关键字相同,
        • 不能与用户编制的函数名、C语言库函数相同,
        • 在程序中各种标识符尽量不要重复,以便区分。
        • 选择变量名和其他标识符时,应注意做到 “见名知义”。

  • 相关阅读:
    Spring 3.0 发布候选版 3 已经可用!
    NetBeans IDE 6.8 正式版发布!
    250g铜版纸 打印扑克?
    一键安装python
    京东商城副总裁李曦:大数据和电子商务_行业信息化_IT商业新闻网
    9.29的北京-》杭州的票怎么现在网上还没有可以预订呢。。。
    运动服火鸟2代三叶草运动服SWIM CLUB 1976款游泳秋装男款海马淘宝网
    无锡巨人网络科技有限公司简介20120411
    李国庆送的国旗太小了,没动力买东西
    虽然不信god,但是技术上还是算是有信yan的人吧
  • 原文地址:https://www.cnblogs.com/ZanderZhao/p/10013847.html
Copyright © 2011-2022 走看看