转义字符 常量分类: (1)字面常量(直接常量):数值常量(分为整型常量和浮点型常量),字符串常量和字符常量
#include<stdio.h>
int main(void){
printf("%d\n",234);
printf("%lf,%lf\n",3.24,3e-2);
printf("%s","%dabc\n");
printf("%%dabc\n");
printf("%c,%d\n",'a','a');
printf("%c,%c,%c,%c\n",'\\','\'','\?','\"');
printf("\a");
printf("1111\babc\n");
printf("2222\r3333\n");
printf("4444\t5555\n");
printf("\101\102\103\n");
printf("\x41\n");
return 0;
}
(2)符号常量 (3)常变量
#include<stdio.h>
#define PI 3.14
#define ID 101
#define CH 'A'
#define S "haha"
int main(void){
printf("%lf,%d,%c,%s\n",PI,ID,CH,S);
const int a=45;
return 0;
}
整型 (一)补码:整型以补码的形式存放 (1)一个正数的补码是此数的二进制形式。 求一个正整数的二进制:除以2,直至商为o,余数倒数排序。 (2)一个负数的补码,先求其绝对值的补码,然后该补码所有位取反,所得之数最后加1。 (3)0的补码,所有位全都是0 注意:在存放整型的存储单元中最左边一位是用来表示符号的。 8位二进制补码所代表的整数:自然数0-127,负数-128-1 n位:-2n——2n-1
(二)整型数据的存储空间及范围 (1)Turbo C中 int 是2个字节。VC ++6.0中 int 是4个字节。C标准没有具体规定各种数据类型所占用储存单元的长度,这是由各编译系统自行决定的。 注意:只有整型〈包括字符型〉数据可以加 signed 或 unsigned 修饰符,实数型不能加;对无符号整型数据用 %u 格式输出。C99新增的整型类型有 long long 和 bool(布尔型) 注意:黑色的格式声明 scanf 可用,黑色和红色的格式声明 printf 可用。 整型常量的类型转换
#include<stdio.h>
int main(void){
short a = 1;
int b = 2;
long c = 3;
long long d = 4;
unsigned short e = 5;
unsigned int f = 6;
unsigned long g = 7;
printf("%d,%d,%d\n",sizeof(short),sizeof(int),sizeof 5);
printf("%hd,%d,%ld\n",a,b,c);
printf("%hu,%u,%lu\n",e,f,g);
printf("%o,%x,%X,%#x,%#X\n",123,123,123,123,123);
scanf("%#x",&b);
printf("%d\n",b);
unsigned short us = -1;
printf("%hu,%hd\n",us,us);
unsigned int ui = us;
printf("%u\n",ui);
short ss = -1;
ui = ss;
printf("%u\n",ui);
ss = 1;
ui = ss;
printf("%u\n",ui);
ui = -1;
printf("%u\n",ui);
printf("%u,%ld,%lu\n",1U,1L,1UL);
printf("%hu,%d\n",(unsigned short)-1,(int)ui);
return 0;
}
字符型数据 (一)字符是以整数形式(ASCII码)存放在内存单元中。ASCII共128个字符(也就是说最多用7位就可以表示)。 一个小写字母比其大写字母的ASCII码大32。 (二)字符型数据的存储空间和值 注意: 1.C99 把字符型数据作为整型类型的一种。 2.在使用有符号字符型变量时,允许储存的值为负数,但是字符的代码不可能是负值,所以在存储字符时只用到了0 — 127这一部分。
#include<stdio.h>
int main(void){
signed char sc;
unsigned char uc;
char ch;
printf("%d,%d,%d\n",sizeof(sc),sizeof(uc),sizeof(ch));
uc = -1;
ch = -1;
printf("%d,%d\n",ch,uc);
return 0;
}
getchar和putchar函数
#include<stdio.h>
void f1(void){
char ch = getchar();
putchar(ch);
}
void f2(void){
putchar(getchar());
putchar(getchar());
putchar(getchar());
}
int main(void){
f2();
return 0;
}
浮点型数据 包括:单精度浮点型,双精度浮点型,长双精度浮点型,复数浮点型
(一)规范化的指数形式,把小数部分中小数点前的数字为0,小数点后第一位数不为0。如:0.314159e1 就是3.14159 的规范化的指数形式。 (二)实数储存空间及范围(Turbo C 中 long double 占16个字节,yc++6.0中占 8个字节) 注:从数值的左边第一个不为 0 的数字起,一直数到这个数字结束,中间的数字叫这个值的有效数字(如 0.618 的有效数字有三个,分别是 6,1,8)
#include<stdio.h>
int main(void){
float a = 1.1F;
double b = 1.1;
long double c = 1e-8L;
printf("%d,%d,%d\n",sizeof(1.1F),sizeof(1.1),sizeof(1e-8L));
printf("%f,%lf,%Lf\n",a,b,c);
printf("%e,%le,%LE\n",a,b,c);
printf("%g,%lg,%LG\n",a,b,c);
return 0;
}
printf用到的格式附加字符
#include<stdio.h>
int main(void){
printf("%5d\n",-12);
printf("%5c\n",'a');
printf("%5s\n\n","abcd");
printf("%-5dA\n\n",-12);
printf("%7.2lf\n",12.345);
printf("%7.lf\n",12.345);
printf("%.5lf\n",12.345);
printf("%11lf\n",12.345);
printf("%-11lf\n",12.345);
return 0;
}
scanf函数的注意事项
#include<stdio.h>
int main(void){
int a;
double b;
scanf("%7.2d",&b);
printf("%lf\n",b);
char ch;
while((ch = getchar())!='\n')
putchar(ch);
putchar('\n');
return 0;
}
运算符2
#include<stdio.h>
int main(void){
int i = 1,j = 4;
printf("%d,%d\n",--i,j--);
printf("%d,%d\n",i,j);
i = 1;j = 4;
printf("%d\n",i+++j);
int a;
printf("%d\n",sizeof((double) a));
printf("%d\n",sizeof(a));
return 0;
}
|