记录今天学的知识
c语言的类型
C语言的变量,必须在使用前定义,并且确定类型
C语言以后的两个方向发展:
1.c++/Java更强调类型,对类型的检查更严格。
2.JavaScript,python,PHP不看重类型,甚至不需要事前定义。
类型
整数:char,short,int,long,long long.
浮点数:float,double,long double.
逻辑:bool.
指针
自定义类型
类型名称:int,long,double
输入输出时的格式化:%d,%ld,%lf
表达的范围:char<short<int<float<double
内存中所占据的内存大小:1个字节到16个字节
内存中的表达形式:二进制数(补码),编码
sizeof
是一个运算符,给某个类型或变量在内存中所占据的字节数
比如,输入int的字节数
#include <stdio.h>
int main()
{
printf("sizeof(int)=%ld\n", sizeof(int));
return 0;
}
sizeof是静态运算符,它的结果在编译的时候就确定了
不要在sizeof里做运算,这些运算是不会做的
整数
char:一字节
short:两字节
int:取决于编译器,通常意义是“一个字”
long:取决于编译器,通常意义是“一个字”
long long:8字节
二进制负数
一个字节可以表达的数
00000000-11111111(0-255)
补码
考虑-1,我们希望-1+1——>0,如何能做到?
0——>00000000
1——>00000001
11111111+00000001——>10000000
11111111被当作纯二进制来看,是255,被当作补码来看,是-1
同理,对于-a,其补码就是0-a,实际上是2的n次方-a,n就是这类型的位数
因为int有32个比特,而char只有8个比特
int main()
{
char c = 255;
int i = 255;
printf("c = % d, i = % d",c,i);
return 0;
}
求int所表达的最大的一个整数
#include <stdio.h>
int main()
{
int a = 0;
while (a >= 0)
{
a++;
}
printf("int的最大整数是%d", a);
return 0;
}
整数的输入输出
只有两种形式
%d:int //所有小于int的 char,short,int都采用%d输出
%u:unsigned
%ld:long long //比int大的
%lu:unsigned long long
用%u来输出int最大的数+1
#include<stdio.h>
int main()
{
int a = -1;
printf("%u", a);
return 0;
}