C语言基础-零散知识点总结(四)

序言

C语言的6个知识板块:数据,操作符,语句,函数,动态内存分配,程序环境

数据

  • 结构体指针初始化

    • 不需要每个元素逐个赋值
    • C语言stdio.h头文件中定义了NULL
      • #define NULL ((void*)0)
      • NULL是一个类型为void*,值为0的对象。
      • void*类型可以隐式转换为任意指针类型
    • 可以将NULL**直接赋值**给结构体指针
      • 如:typedef dataqueuelist* portList;
      • portList plplist;
      • *plplist = NULL;初始化
  • 字符串常量更改

    • 如果定义成char *str = “abcd”;这样的话是不可以对字符串常量进行修改的,字符串常量存储在常量区,不允许修改(当然也可以非法修改)
    • 常量存储区是一块比较特殊的存储区,里面存放常量不允许修改;全局/静态存储区存放全局变量和静态变量
    • 如果要修改字符串内容,可做如下定义char str[] = “abcd”;修改为数组形式,可直接对元素进行修改
  • 变量类型

    • u_char,u_int,u_short,u_int8_t等变量类型
    • 系统数据类型,与平台无关
    • 如:int在32位操作系统/编译系统下是2字节,在64位下是4字节,而u_int8_t在任何平台下都是8位无符号整型数

操作符

  • 关键字

    • 关键字,C语言标准定义的32个关键字
      • auto 声明自动变量,缺省时编译器一般默认为auto
      • int 声明整型变量
      • double 声明双精度变量
      • long 声明长整型变量
      • char 声明字符型变量
      • float 声明浮点型变量
      • short 声明短整型变量
      • signed 声明有符号类型变量
      • unsigned 声明无符号类型变量
      • struct 声明结构体变量
      • union 声明联合数据类型
      • enum 声明枚举类型
      • static 声明静态变量
      • switch 用于开关语句
      • case 开关语句分支
      • default 开关语句中的“其他”分支
      • break 跳出当前循环
      • register 声明寄存器变量
      • const 声明只读变量
      • volatile 说明变量在程序执行中可被隐含地改变
      • typedef 用以给数据类型取别名(当然还有其他作用)
      • extern 声明变量是在其他文件正声明(也可以看做是引用变量)
      • return 子程序返回语句(可以带参数,也可不带参数)
      • void 声明函数无返回值或无参数,声明空类型指针
      • continue 结束当前循环,开始下一轮循环
      • do 循环语句的循环体
      • while 循环语句的循环条件
      • if 条件语句
      • else 条件语句否定分支(与if 连用)
      • for 一种循环语句(可意会不可言传)
      • goto 无条件跳转语句
      • sizeof 计算对象所占内存空间大小
    • C89标准中有32个关键字,可以将其分成4部分,分别是数据类型关键字(12),控制语句关键字(12个),存储类型关键字(4个),类型限定符关键字(2个),其他(2个)。
      • 数据类型关键字
        • 基本数据类型:void,short,int,long,signed,unsigned,float,double,enum
        • 结构类型:struct,union
      • 控制语句关键字
        • 选择语句关键字:if,else,switch,case,default
        • 循环语句关键字:do,while,for
        • 跳转语句关键字:return,continue,break,goto
      • 存储类型关键字:auto,register,static,extern
      • 类型限定符关键字:const,volatitle
      • 其他:sizeof,typedef
  • 操作符

    • 具有不同优先级的各种运算符
      • 初等运算符
      • 单目运算符
      • 算术运算符
      • 移位运算符
      • 关系运算符
      • 位操作运算符
      • 逻辑运算符
      • 条件运算符
      • 赋值运算符
      • 逗号运算符

语句

  • for循环如何每次加n(n>1)

    • 一个for循环有4个部分:起始条件,终止条件,循环体,循环条件
    • 在循环条件处更改:如每次加2 for (i=0;i<10;i=i+2) or for (i=0;i<10;i+=2)
  • 退出语句

    • exit(0); 退出函数
    • break; 退出循环
    • continue; 继续下一次循环

函数

  • getchar()函数

    • 函数功能:从标准输入控制台读取字符
    • 头文件:stdio.h
    • 函数原型:int getchar(void);
    • 函数返回值:
      • 成功:返回第一个输入字符的ASCII码
      • 失败:-1
      • 如果用户在按回车键之前输入了不只一个字符,其他字符会保留在键盘缓冲区中,等待后续getchar()调用读取。即后续的getchat()调用不会等待用户按键,而是直接读取缓冲区中的字符,直到缓冲区的字符读取完毕后,才等待用户按键。
    • 注:getchar()非真正函数,而是getc(stdin)的宏定义
  • printf()函数的输出格式

    • 字符型:%c
    • 字符串类型:%s
    • 整型:%d
    • 长整型:%ld
    • 无符号整型:%u
    • 单精度浮点型:%f,%.nf表示精确到小数点后n位
    • 双精度浮点型:%lf
    • 无符号十六进制数小写:%x,%nx表示输出n字符
    • 无符号十六进制数大写:%X
    • 指针类型:%p
  • abs()绝对值函数

    • 头文件:stdlib.h
    • 函数原型:int abs (int para);
    • 返回值:返回参数para的绝对值结果

程序环境

  • 控制台、终端和shell是什么关系
    • 控制台-console:linux环境下“Ctrl+Alt+F1”进入Linux系统的控制台,“Ctrl+Alt+F7”退出控制台。
      • Linux在控制台下提供了不止一个终端,通过“Ctrl+Alt+Fx”切换到第x个终端
    • 终端-terminal:是一个应用程序,可以在里面输入命令和计算机交互。
      • “Ctrl+Alt+Fx”进入的是字符终端环境,shell是人机交互终端环境。
    • shell:各终端里运行的命令行程序并不是终端本身,更不是Linux本身。命令行程序实质上也是个外围程序,叫“shell”。
      • shell包含了用户界面功能,负责接收使用者输入的东西,翻译后发送给Linux内核处理。如果有输出信息,它也会把输出信息显示出来


2017.06.19

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值