C语言概述,数据类型、长度、输入输出、运算符、基本控制语句

课堂笔记总结

概述

  1. 丹尼斯·里奇,C语言之父,UNIX之父
  2. C语言主要特点:可以直接访问硬件(因为它有指针类型,可以对地址操作),运行效率(运行时,解释性),移植性好。
  3. 作业1:C语言语法标准:详解 K&RC C89 C99 C11
  • K&R C主要介绍了以下特色:结构(struct)类型、长整数(long int)类型、无符号整数(unsigned int)类型、把运算符=+和=-改为+=和-=。
  • 这个版本的语言经常被称作”ANSI C”,或有时称为”C89”。 传统C语言到ANSI/ISO标准C语言的改进包括:增加了真正的标准库、新的预处理命令与特性,函数原型允许在函数申明中指定参数类型,一些新的关键字,包括 const、volatile 与 signed 宽字符、宽字符串与字节多字符。
  • C99新增了一些特性,如:支持不定长的数组,即数组长度可以在运行时决定。变量声明不必放在语句块的开头,for 语句提倡写成 for(int i=0;i<100;++i) 的形式,即i 只在 for 语句块内部有效。初始化结构的时候允许对特定的元素赋值。允许编译器化简非常数的表达式。取消了函数返回类型默认为 int 的规定。
  • 在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准。这个标准通常即C11,它是C程序语言的最新标准。

数据类型

1.右左法则:

确定a是一个变量,就要确定该变量保存什么类型的数据,保存什么类型的数据,它就是什么变量;
确定a是一个指针变量,就要确定该指针变量保存什么什么类型的地址,保存什么类型的地址,它就是什么类型的指针变量。
确定a是一个数组,就要确定数组里的元素是什么类型的,元素是什么类型,它就是什么数组。
确定a是一个函数,就要确定函数的形参和返回值。
例:
float (*( * b( ))[ ] )( );
① b函数,形参为空 返回值为数组指针,指向一个函数指针数组,该数组里每个元素是返回值为浮点型 形参为空的函数
Void *( *c)( char a,int ( *b)( ) );
② 函数指针变量,指向一个函数返回值为void *,此函数的两个形参分别为一个字符类型,一个形参为空 返回值为整形的指针
Float( *( * e[10])( int &) )[5]
③ 函数指针数组,指向有一个地址形参 返回值为指针类型的函数,返回值为5个浮点类型元素的数组

2. 数据长度

基本类型字节长度:

int char short long float double
4 1 2 8 4 8

各种数据类型的指针的字节长度
(固定的8,因为保存地址,地址在操作系统中是固定长度;32位系统是4个字节)

int * char * short * long * float * double *
8 8 8 8 8 8

sizeof是运算符不是函数,计算数据类型或者变量所占内存空间的大小。
strlen是字符串库函数,统计当前字符串中的字符个数,不统计\0 , sizeof 统计\0

3. 输入输出

printf 行缓冲 满一行才输出
scanf 行缓冲 与printf用同一个缓冲
格式化输入scanf(“kgf%d”,&num);那么输入时就要输kgf10
Getchar 可用于接受多余字符
putchar
gets 输入字符串
puts

代码
C语言概述,数据类型、长度、输入输出、运算符、基本控制语句
结果C语言概述,数据类型、长度、输入输出、运算符、基本控制语句

4. 运算符、基本控制语句
  • i++ int i=2,func(++I,i++)

  • While for 已知次数用for 未知用while

  • If switch case
    switch(op)
    {
    case ‘+’:
    {
    break;
    }
    default:
    }

  • Break continue

  • Goto

  • 代码练习 : 统计字符串中最长的数字子串长度
    C语言概述,数据类型、长度、输入输出、运算符、基本控制语句