对以前知识漏洞的弥补
1、int 取值范围从-2 31~2 31-1
31的由来:如果无符号就 32,如果有符号,那么符号占一位,所以是32-1=31.
2、无符号数就是自然数。字节是内存的单位 。1Byte=8bit(位)。一个字节由8位构成。
3、float字节数为4,double字节数为8
float:小数点后6位准确。double:小数点后15位准确。
4、printf("%%%d\n");
两个%%输出一个%,所以语句的结果为%0
5、printf("带有格式控制字符的字符串");
以%开始,后面跟一个具体的格式控制字符,指定后面的参数显示的位置
printf("abc%ddefg\n",sizeof(int));
结果是abc4defg
-表示左对齐输出,若省略表示右对齐。
6、官方补充版
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
下面对组成格式说明的各项加以说明:
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
④l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
7、%d 十进制
%o 八进制
%x 十六进制
%f float
%lf double
%.5lf 小数点后5位
%c 单个字符
%p 以指针形式输出字符型数据
%s 以字符串形式输出字符型数据
8、存一个字符占一个字节
9、目:运算符所带的数据个数
10、printf("%c\n",'abc');
如果用单引号输出,则最后结果只有c
11、我写的代码,十进制转换为二进制:
int _tmain(int argc, _TCHAR* argv[])
{
int n,m;
//用数组获得余数
int a[100];
int i=0;//计数
//获得数字
printf("从键盘输入一个数字:\n");
scanf("%d",&n);
//商为0时停止循环
while(2)
{
m=n;
n=n/2;
a[i]=m-n*2;
i++;
if(n==0)
break;
}
int sum=i;
//输出二进制数
for(i=sum-1;i>=0;i--)
{
printf("%d",a[i]);
}
_getch();
return 0;
}
12、ASC码的代码
int _tmain(int argc, _TCHAR* argv[])
{
int n;
n='A';
printf("%d\n",n);
char c;
c=65;
printf("%c",c);
_getch();
return 0;
}
13、浮点数不能做精确比较。。输出结果为0
int _tmain(int argc, _TCHAR* argv[])
{
float ff=1.223f;
printf("(ff==1.223):%d\n",(ff==1.223));
_getch();
return 0;
}