现在的位置: 首页 > 综合 > 正文

C基础笔记1

2018年10月20日 ⁄ 综合 ⁄ 共 2181字 ⁄ 字号 评论关闭

现代计算机之父: 冯.诺依曼

计算机语言分类:

    机器语言

    汇编语言

    高级语言:B语言系

                        C语言系(C,C++,C#,java,Perl,Python)

C语言及标准化

         最早由Dennis Ritchie于1973年为unix设计并实现,从贝尔实验室到世界各地

         标准:

            C89 ANSI(美国国家标准委员会)于89年12月正式通过,90年被ISO批准为国家标准

            C99 99年ISO通过了新版的C标准。

C语言特点

     1.底层语言

     2.小型语言:有限的语言特征、依赖标准函数库 

     3.包容性:广泛的自由度,不强制进行详细的错误检查  

    4.C语言不是一个强类型语言,类型检查机制已经得到加强

C语言优缺点:

    优点:高效、可移植、功能强大、灵魂(从嵌入式到商业数据处理、限制少)、标准库、与UNIX系统集成。

    缺点:容易隐藏错误、有时难以理解、难以修改

 

gcc选项

   -c 编译

   -o自定义目标名

   -std=c89或c99

   -E仅仅预处理

   -S产生汇编

    -Wall编译器检测到可能的错误时生成警告信息

    例如:

        gcc 01helloworld.o//编译源代码

        gcc 0lhelloworld.o –ohelloworld//-o起别名

    ls –F//查看文件属性

注释

   /**/ 多行注释

   //   c99提供的新注释形式,单行注释

   不能嵌套注释 

C语言书写规范

    语句,可以分开放在任意多行内;

   空格是我们任意区分

   缩进,有助于识别程序嵌套  

   空行,可以把程序分为逻辑单元

   驼峰命令方式和下划线区分方式

变量

  变量---类型---声明---赋值   

 

标示符和关键字

     标示符:变量、函数、宏、其他实体的名称需要:

           字母、下划线开头

           可以包含字母、下划线、数字

           大小写敏感

          不能和关键字冲突

          标示符长度的限制:

                C89声明可以任意长,但编译器只记住前31个

                C99中63个

   关键字:

         有特殊含义的一串字符

         标准库中的函数名全部小写

C语言中的基本类型

      Char 8位 16

           C标准没有说明普通char是有符号还是无符号

           C语言对字符类型视为整数类型

      int:

           有符号:signed,默认(正负),范围2147483647- -2147483648

           无符号的:非负数,范围0-4294967296

     float

     double

 

转义字符

      响铃 \a

      退格 \b

      换行 \n

      回车 \r

      水平制表符 \t

      垂直制表符 \v

      特殊字符:\\,\?,\’,\”

Printf()输出各种类型的变量值

    Printf(“格式字符串”,…);

     %i%d    int

    %f/%lf   float/double

     %hd/%ld short int/long int

      %u      unsigned int

     %c      char

      %s      string

      %p      address(指针)

      %o       八进制

      %x/%x    十六进制

       %g      float/double 去尾零

       %e/%E   科学计数法

       %%      %

 Printf(“%-0m.nl”,…);:

%  转义符

     -  左对齐

     0代表空位填0,省略代表空位不填

     m.n: m表示域宽,指对应的输出项在输出设备占用多个字符的宽度

                n,表示精度,指输出浮点数的时候,小数点后面的位数,默认为6

     l或者h,l表示长double型,h表示短double型

字面值和常量

     3被认为是int

     3.5被认为是double     

     35u被认为是unsignedint

      35L被认为是long int

八进制和十六进制

    0377

    0x12AB

 

进制-的转换

 

10进制---2进制,除2取余倒记法

10进制---8进制,除8取余倒记法

权位

2进制—10进制,乘权相加法

10110101,=1*2^0+1*2^2+2^4+…..

0167,,     =7*8^0+6*8+8^2=119

Scanf(“格式符”,地址表)  从键盘输入

格式符

    d十进制

    i整数型,可以是10,8,16进制

    o八进制

    u无符号10进制

     x十六进制

     c字符

     s非空白符组成的字符串

     e,f,g浮点数

     p地址

 段错误:程序段、数据段、bss段、堆栈

访问非法地址

注意:转换说明和后面地址相匹配

输入项前面的&不要省略

scanf遇到不可能属于该项的字符的时候,会把这个字符放回到原处,下一次调用的时候再度入。

scanf(“%*c”)//fflush(stdin):清楚回车,多个scanf()出现的时候

Scanf不会读取最后的换行符

解决办法:scanf(“%*c”);//可以将回车从缓存区读取出来。

如果格式串中包含普通字符

例如:scanf(“num=%d&”,&num);

则输入时应按照普通字符的格式输入:num=3000;

scanf可以作为返回值num=scanf(“”);可以用于判断数据是否输入正确

 

抱歉!评论已关闭.