第一章  基础知识

  • 1.1  基本框架

    • //任何一个c语言程序都必须包括以下格式:
      int main(int argc, char *argv[] )
      {
      return ;
      }
      //这是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)区别
        • .K&R书上main函数定义写成main(){...} 形式,不写返回值类型也不写参数列表,这是Old Style C的风格。
          Old Style C规定不写返回值类型就表示返回int型,不写参数列表 就表示参数类型和个数没有明确指出。
          这种宽松的规定会导致很多复杂的Bug产生,不幸的是现在的C标准为了兼容旧的代码仍然保留了这种语法。 . 其实系统在调用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语言库函数相同,
      • 在程序中各种标识符尽量不要重复,以便区分。
      • 选择变量名和其他标识符时,应注意做到 “见名知义”。

3011C语言_基础知识的更多相关文章

  1. Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

    JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...

  2. iOS开发系列--C语言之基础知识

    概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift ...

  3. 【值得收藏】C语言入门基础知识大全!从C语言程序结构到删库跑路!

    01 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成.格式.以及良好的书写风格,使小伙伴对c语言有个初步认识. 例1:计算两个整数之和的c程序: #include main() { ...

  4. Oracle的DML语言必备基础知识

      前提是咱们都已经对常用的数据操纵语言非常熟悉了,对标准SQL: SELECT子句                --指定查询结果集的列 DROM子句                 --指定查询来 ...

  5. C语言面试基础知识整理

    一.预处理 1.什么是预编译?何时需要预编译? (1)预编译又称预处理,是做些代码文本的替换工作,即程序执行前的一些预处理工作.主要处理#开头的指令,如拷贝#include包含的文件代码.替换#def ...

  6. 动态样式语言—LESS基础知识

    CSS是一门非程序式语言,缺少逻辑性,不便于维护 LESS在CSS现有语法的基础上,为CSS加入程序式语言的特性 引入了变量.混入.运算.函数等功能,大大简化CSS的编写,降低了CSS的维护成本 LE ...

  7. mysql学习之路_基础知识

                    Mysql php阶段将数据库分为三个阶 基础阶段: mysql数据库的基本操作(增删改查),以及一些高级操作(视图,触发器,函数,存储过程等),PHP操作没有sql数 ...

  8. Tcl语言学习--基础知识

    一.脚本.命令和单词符号 一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开. 1.关键字/变量 变量是程序的基础变量组成:变量名.变量值变量名要求:任何字符串都可以作为变量名,区分 ...

  9. 关于XML(可扩展标记语言)的基础知识与写法------2017-05-18

    XML(Extensible Markup Language) HTML:超文本标记语言,主要用来展示   XML:可扩展标记语言,用来做数据传输XML特点: 1.树状结构,有且只有一个根 2.标签名 ...

随机推荐

  1. dot net core 使用 usb

    原文:dot net core 使用 usb 本文告诉大家如何在 dot net core 使用 usb 目录 获得通知 读写 串口通信 LGPL 首先需要打开 Nuget 安装 CoreCompat ...

  2. iOS6 与iOS7以及7以上状态栏的颜色设置

    iOS7默认状态栏文字颜色为黑色 修改为白色的方法:(chenyong注意 我的Status bar style 使用的仍是默认值Gray style(default)) 1在Info.plist中设 ...

  3. Springmvc案例1----基于spring2.5的採用xml配置

    首先是项目和所须要的包截图: 改动xml文件: <?xml version="1.0" encoding="UTF-8"?> <web-app ...

  4. Extensible File System

    An extensible file system format for portable storage media is provided. The extensible file system ...

  5. Android-apktool-就从此处开始反编译之旅

    前言 一直听说过反编译,感觉很高大上,一直没自己用过,今天因缘巧合之下,终于要开始逐渐认识,了解和学习一下反编译了~先给自己说下加油,鼓励一下下 apktool的下载和安装 apktool 下载地址: ...

  6. Logical partitioning and virtualization in a heterogeneous architecture

    A method, apparatus, and computer usable program code for logical partitioning and virtualization in ...

  7. XML DTD和XML Schema

    CSDN原文.讲的很清楚.

  8. Frequentist 观点和 Bayesian 观点

    1. Frequentist view Frequentist approach views the model parameters as unknown constants(未知的常数,而不是一个 ...

  9. 使用c++代替使用的c包!

    看到很多人写c代码.的结构为包的各种元件.例如,使用转载如下epoll样本: //    // a simple echo server using epoll in linux   //    // ...

  10. WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画

    原文:WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画 利用WPF的ListView控件实现类似于Winform中DataGrid行背景色交替变换的效果,同 ...