目录
1. 整型常量 所需类型
a。整型常量表示
10 代表int类型
10l, 10L 代表long类型
10ll, 10LL 代表long long类型
10u, 10U 代表unsigned int类型
10ul, 1b0UL 代表unsigned long类型
10ull, 10ULL 代表unsigned long long类型
b。整型常量输出
%hd 输出short类型
%d 输出int类型
%ld 输出long类型
%lld 输出long long类型
%hu 输出unsigned short类型
%u 输出unsigned int类型
%lu 输出unsigned long类型
%llu 输出unsigned long long类型
实例代码
#define _CRT_SECURE_NO_WARNINGS //这个宏定义最好要放到.c文件的第一行
#include <stdio.h>
int main()
{
short aa = 10;
int bb = 10;
long cc = 10l; //或者10L
long long dd = 10ll; //或者10LL
//short aa = 10;
//int bb = 10;
//long cc = 10;
//long long dd = 10;
printf("short aa = %hd\n", aa);
printf("int bb = %d\n", bb);
printf("long cc= %ld\n", cc);
printf("long long dd = %lld\n", dd);
unsigned short a2 = 20u;
unsigned int b2 = 20u;
unsigned long c2 = 20ul;
unsigned long long d2 = 20ull;
//unsigned short a2 = 20;
//unsigned int b2 = 20;
//unsigned long c2 = 20;
//unsigned long long d2 = 20;
printf("unsigned short a = %hu\n", a2);
printf("unsigned int b = %u\n", b2);
printf("unsigned long c = %lu\n", c2);
printf("unsigned long long d = %llu\n", d2);
printf("unsigned short a = %uh\n", a2); //err
printf("unsigned int b = %u\n", b2); //err
printf("unsigned long c = %ul\n", c2); //err
printf("unsigned long long d = %ull\n", d2); //err
return 0;
}
2.C语言如何表示相应进制数
十进制 以正常数字1-9开头,如123,+234,-278。
八进制 以数字0开头,如0123,
十六进制 以数字0X或0x开头,如0x123
二进制 C语言不能直接书写二进制数
#include <stdio.h>
int main()
{
int a = 123; //十进制方式赋值
int b = 0123; //八进制方式赋值, 以数字0开头
int c = 0xABC; //十六进制方式赋值
//如果在printf中输出一个十进制数那么用%d,八进制用%o,十六进制是%x
printf("十进制:%d\n",a );
printf("八进制:%o\n", b); //%o,为字母o,不是数字
printf("十六进制:%x\n", c);
return 0;
}
3.打印格式 含义
%d 输出一个有符号的10进制int类型
%o(字母o) 输出8进制的int类型
%x 输出16进制的int类型,字母以小写输出
%X 输出16进制的int类型,字母以大写输出
%u 输出一个10进制的无符号数
实例代码
#define _CRT_SECURE_NO_WARNINGS //这个宏定义最好要放到.c文件的第一行
#include <stdio.h>
int main()
{
int a = 123; //定义变量a,以10进制方式赋值为123
int b = 0567; //定义变量b,以8进制方式赋值为0567
int c = 0xabc; //定义变量c,以16进制方式赋值为0xabc
printf("a = %d\n", a);
printf("8进制:b = %o\n", b);
printf("10进制:b = %d\n", b);
printf("16进制:c = %x\n", c);
printf("16进制:c = %X\n", c);
printf("10进制:c = %d\n", c);
unsigned int d = 0xffffffff; //定义无符号int变量d,以16进制方式赋值
printf("有符号方式打印:d = %d\n", d);
printf("无符号方式打印:d = %u\n", d);
printf("无符号方式打印(16进制):d = %x\n", d);
printf("无符号方式打印(16进制):d = %X\n", d);
int t = 0Xfbc; //定义变量c,以16进制方式赋值为0xabc
printf("有符号方式打印(16进制):t = %x\n", t);
printf("有符号方式打印(16进制):t = %X\n", t);
printf("有符号方式打印(10进制):t = %d\n", t);
printf("无符号方式打印(10进制):t = %u\n", t);
return 0;
}
printf函数和putchar函数
printf是输出一个字符串,putchar输出一个char。
printf格式字符打印格式:
打印格式 对应数据类型 含义
%d int 接受整数值并将它表示为有符号的十进制整数
%hd short int 短整数
%hu unsigned short 无符号短整数
%o unsigned int 无符号8进制整数
%u unsigned int 无符号10进制整数
%x,%X unsigned int 无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF
%f float 单精度浮点数
%lf double 双精度浮点数
%e,%E double 科学计数法表示的数,此处"e"的大小写代表在输出时用的"e"的大小写
%c char 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
%s char * 字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)
%p void * 以16进制形式输出指针
%% % 输出一个百分号
printf附加格式:
字符 含义
l(字母l) 附加在d,u,x,o前面,表示长整数
- 左对齐
m(代表一个整数) 数据最小宽度
0(数字0) 将输出的前面补上0直到占满指定列宽为止不可以搭配使用-
m.n(代表一个整数) m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度,用于说明输出的实型数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。
实例代码
#define _CRT_SECURE_NO_WARNINGS //这个宏定义最好要放到.c文件的第一行
#include <stdio.h>
int main()
{
int a = 100;
printf("a = %d\n", a);//格式化输出一个字符串
printf("%p\n", &a);//输出变量a在内存中的地址编号
printf("%%d\n");
char c = 'a';
putchar(c);//putchar只有一个参数,就是要输出的char
long a2 = 100;
printf("%ld, %lx, %lo\n", a2, a2, a2);
long long a3 = 1000;
printf("%lld, %llx, %llo\n", a3, a3, a3);
int abc = 10;
printf("abc = '%6d'\n", abc);
printf("abc = '%-6d'\n", abc);
printf("abc = '%06d'\n", abc);
printf("abc = '%-06d'\n", abc);
double d = 12.3;
printf("d = \' %-10.3lf \'\n", d);
return 0;
}
scanf函数与getchar函数
- getchar是从标准输入设备读取一个char。
- scanf通过%转义的方式可以得到用户通过标准输入设备输入的数据。