C语言简要(三)

有一天我看见过44次日落

数据类型

C语言的变量,必须再使用前定义,并且确定类型

整数

char、short、int、long、long long(C99)

浮点数

float double\long double(C99)

逻辑

bool(C99)

指针

自定义类型

类型有和不同 

类型名称:int、long、double

输入输出的格式化:%d\%ld\%lf

所表达数的范围:char<short<int<float<double

内存中所占据的大小:二进制数(补码)、编码

sizeof

 是一个运算符,给出某个类型或变量在内存中所占据的字节数

sizeof(int)

sizeof(i)

 是一个静态运算符,它的结果在编译时刻就决定了

不要在sizeof括号里做运算,这样运算不会做的。

 整数类型字节

#include <stdio.h>

int main()
{
printf("%d",sizeof(char));
printf("%d",sizeof(short));
printf("%d",sizeof(int));
printf("%d",sizeof(long));
printf("%d",sizeof(long long));
return 0; 
}

 

整数的内部表达 

二进制负数

1个字节可以表达的数:

00000000-11111111(0-255)

三种方案:仿照十进制,有一个特殊的标志表示负数

                取中间的数为0,如10000000表示0,比它小的数是负数,比它大的数是正数

                补码

补码

 数的范围

对于一个字节(8位),可以表达的是:

0000000-11111111

其中

00000000->0

11111111~10000000->-1~-128

00000001~01111111->1~127

 

unsigned 

如果一个字面量常数想要表达自己是unsigned,可以在后面加u或U

255U

用l或L表示long(long)

unsigned的初衷并非扩展数能表达的范围,而是为了做纯二进制运算,主要为了移位

整数越界

整数是以纯二进制方式进行计算的,所以:

11111111+1->100000000 ->0

01111111+1->10000000->-128

10000000-1->01111111->127

 

整数的输入输出 

浮点类型 

超过范围的浮点数

 printf输出inf表示超出范围的浮点数:+-无穷

printf输出nan表示不存在浮点数

 但是整数/0是不可以的

浮点数的内部表达

字符类型

char是一种整数,也是一种特殊的类型:字符。这是因为:

用单引号表示的字符字面量:‘a','1'

''也是一个字符

printf和scanf里用%c来输入输出字符

逃逸字符

用来表达无法打印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟上另一个字符,这两个字符合起来,组成了一个字符

printf("请分别输入身高的英尺和英寸,""如输入\"5 7\"表示5英尺7英寸");

自动类型转换

当运算符的两边出现不一致的类型时,会自动转换成较大的类型

大的意思是表达的数的范围更大

char->short->int->long->long long

int->float->double

对于printf,任何小于int的类型会被转换成int;float会被转换成double

但是scanf不会,要输入short,需要%hd 

强制类型转换

要把一个量强制转换成另一种类型(通常是较小的类型)需要 

格式:(类型)值

bool

#include <stdbool.h>

之后就可以使用bool和true、false了

逻辑运算

逻辑运算是对逻辑量进行的运算,结果只有0或1

逻辑量是关系运算或逻辑运算的结果 

 如不能写成4<x<6,要写成x>4&&x<6

 

条件运算符

count=(count>20)?count-10:count+10;

 逗号运算符

逗号用来连接两个表达式,并以其右面的表达式作为它的结果。逗号的优先级是所有的运算符中最低的,所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边的表达式的值就留下来作为逗号运算的结果。

函数 

函数是一块代码,接受零个或多个参数,做一件事情,并返回0个或一个值

调用函数

函数名(参数值);

()起到了表示函数调用的重要作用

即使没有参数也需要()

如果有参数,则需要给出正确的数量和顺序

这些值会被按照顺序依次用来初始化函数中的参数

 函数先后关系

C的编译器自上而下顺序分析你的代码

如果把sum放到下面

这时候就要用到函数原型了

#include <stdio.h>
void sum(int begin,int end);  //声明 

int main()
{
sum(1,10);
sum(20,30);
sum(35,45);
return 0; 
}
void sum(int begin,int end) //定义 
{
	int i;
	int sum=0;
	for(i=begin;i<=end;i++){
		sum+=1;
	}
	printf("%d到%d的和是%d\n",begin,end,sum);
}

函数头,以分号“;”结尾,就构成了函数的原型函数原型的目的是告诉编译器这个函数长什么样

名称

参数

返回类型

传值

每个函数有自己的变量空间,参数也位于这个独立的空间中,和其他参数没有关系

对于函数参数表中的参数,叫做形式参数,调用函数时,叫做实际参数 

本地变量

也叫局部变量。

变量的生存期和作用域

下班下班

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值