C语言里提供了一组工具,他们叫做标准函数;每个标准函数用来解决一个常见问题

不同标准函数名字不同,可以在程序里编写函数调用语句使用标准函数

printf标准函数可以用来把程序里的数字显示在终端窗口里

为了使用这个标准函数需要包含stdio.h头文件

可以在双引号里使用占位符(%+类型)把数字转移到双引号的后面

双引号后面的数字可以是一个计算公式,计算机先计算出公式的结果然后替换掉双引号里面的占位符

不同类型的数字和不同的占位符配合使用,整数类型数字应该和%d占位符配合使用

可以在一条语句里使用多个占位符,这个时候就应该在双引号后面提供多个数字,数字个数和占位符个数一样

程序里所有数字必须记录到内存里

内存由大量的字节构成,每个字节可以用来记录一个数字

每个字节有一个编号,这个编号叫做字节的地址,不同字节的地址不同

所有字节的地址从0开始依次向上递增

字节之间有前后顺序,地址小的字节在前,地址大的字节在后

可以把几个相邻的字节合并成一个整体用来记录一个数字

内存里用来记录一个数字的所有字节叫做一个存储区

一个存储区只能记录一种类型的数字,存储区也有地址,存储区的地址是他所包含的字节中最前面那个字节的地址

C语言程序里变量用来代表存储区,对变量的操作也就是对他所代表存储区的操作

变量必须先声明然后才能使用,变量声明语句可以用来声明语句

变量声明语句让计算机为程序分配存储区;可以在一条语句里声明多个同类型变量

程序中可以向变量里存放数字也可以从变量里获取数字

赋值语句可以向变量里存放数字;赋值语句里使用赋值操作符(=)

赋值操作符要求左边的内容必须可以代表存储区(这种内容叫左值);变量是最常见的左值

赋值操作符右边的内容必须可以代表数字,赋值语句可以把赋值操作符右边的数字放到左边的存储区里

可以在声明变量的时候立刻对变量进行赋值,这叫做变量的初始化

C语言里所有变量都应该初始化

可以在程序里直接把变量当作数字使用,这就是从变量里获得数字的方法

变量名称既可以代表存储区也可以代表存储区里的数字,由环境决定

如何判断一个变量到底代表存储区还是数字

方法:将变量名称换为0,根据左边名称右边数字可以确定是做存储区还是数字

存储区的地址也可以代表存储区,在变量名称前加上符号&就可以得到存储区的地址

可以使用%p做占位符把地址数据显示在电脑屏幕上

程序中可以使用变量代表一个固定的数字

程序中可以使用变量代表一组数字(变量在不同的时候代表不同的数字)

作业:编写程序在屏幕上显示以下内容

5

54

543

5432

54321

双引号里和双引号后面不能出现数字

点击查看代码
#include<stdio.h>
int main(){
    int num=54321,base=10000,num1=10;
    printf("%d\n",num/base);
    base=base/num1;
    printf("%d\n",num/base);
    base=base/num1;
    printf("%d\n",num/base);
    base=base/num1;
    printf("%d\n",num/base);
    base=base/num1;
    printf("%d\n",num/base);
    return 0;
}

C语言字符类型

字符类型的名称是char

字符类型里包含256个不同的字符数据('a','^等),每个字符数据可以用一个整数表示

字符数据和整数是可以互相替代的,ASCII码表里列出所有字符和整数之间的对应关系

ASCII码表里所有小写英文字母是连续排序的,‘a’对应的整数最小,‘z’对应的整数最大

所有的大写英文字母和阿拉伯数字字符也都符合这个规律

所有字符数据被分成两组每组包含128个,其中一组字符数据对应的整数在所有计算机里都一样,这些整数的范围

从0到127

另外一组字符数据对应的整数在不同的计算机里不一样,这些整数有可能从-128到-1也肯能从128到255

  ‘\n’		换行

  ‘\r’		回车

  ' \ \ '	代表字符\

  '\ '    ‘   代表字符 ’

  ' \ " '     代表字符 "

  短整数类型名称是short

  这个类型里包含65536个不同的整数,其中一半是非负数,另一半是负数。这些数字以0为中心向两边扩展

  长整数类型名称是long

  这个类型里包含2的32次方个不同的整数,其中一半是非负数,另一半是负数。这些数字以0为中心向两边扩展、

  整数类型名称是int

在我们计算机里整数类型和长整数类型完全一样

以上数据类型统一叫有符号类型

每个有符号类型对应一个无符号类型,无符号类型名称就是在对应有符号类型名称前加unsigned关键字
比如unsigned char,unsigned int 。
无符号类型所包含的数字个数对应有符号类型的个数一样,但是  不包含负数。 

整数相关数据类型所包含的数字范围互相重叠并且逐渐扩大

在不带小数点的数字后加u表示数字的类型是无符号整数类型的

C语言里使用浮点类型表示带小数点的数字,浮点类型分为单精度浮点类型和双精度浮点类型

双精度浮点类型可以记录更多小数点后面的数位

单精度浮点类型名称是float

双精度浮点类型名称是double

程序中带小数点的数字默认是双精度浮点类型的

带小数点的数字后面加f表示数字的类型是单精度浮点类型(如:3.2f)

C语言里允许扩展新的数据类型

扩展出来新的数据类型叫复合数据类型

复合数据类型都需要编写语句先创建出来然后才能使用

C99规范里引入布尔类型

这个类型里只包含0和1两个整数,其中0表示假,1叫做真

真和假都叫做布尔值

C语言程序里任何整数都可以当作布尔值使用,0当作布尔值使用的时候是假,所有其他整数当布尔值使用的时候都是真

一般不需要再程序里使用布尔类型,直接把整数当布尔值使用就可以了

数据类型和占位符的对应关系

char和unsigned char	            %c

short  							%hd

unsigned short 					%hu

long						    %ld

unsigned long				    %lu

int								%d

unsigned int 					%u

float							%f   or %g

double							%lf  or  %lg

%f和%lf在显示的时候会保留小数点后面无效的0,%g 和%lg不会保留

不同类型的存储区所包含的字节个数不同

sizeof关键字可以用来计算一个存储区包含的字节个数

char和unsigned char						1个字节

short和unsigned short				    2个字节

long 和unsigned long				    4个字节

int和unsigned int						4个字节

float									4个字节

double								    8个字节

sizeof关键字后的小括号里对任何存储区内容的修改不会真正发生

eg:

int num=0;

sizeof(num=10);

printf("num=%d\n",num);

此时num=0

作业:

编写程序计算半径为5.2的圆的周长并把结果显示在屏幕上

2*3.14半径

半径应该记录在变量里

点击查看代码
#include<stdio.h>
int main(){
  float r=5.2f;
  printf("Cir=%f\n",2*r*3.14);
  return 0;
}

作业:

编程在屏幕上显示以下5行内容

54321

5432

543

54

5

每次显示一行,双引号里面和后面都不能有数字

点击查看代码
#include<stdio.h>
int main(){
  int num=54321,num1=10;
  printf("%d\n",num);
  num=num/num1;
  printf("%d\n",num);
  num=num/num1;
  printf("%d\n",num);
  num=num/num1;
  printf("%d\n",num);
  num=num/num1;
  printf("%d\n",num);
  num=num/num1;
  return 0;
}