C语言(2)数据类型、常量、Printf、sizeof、scanf的使用

本文详细解读了C语言中各种数据类型的存储空间大小、整型、实型、字符常量和字符串常量的表示方法,以及printf和scanf函数的使用技巧,包括输出精度调整和数据类型匹配注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


数据类型

   基本数据类型(mac为64位)

占用空间16位       32位     64位

char        1(JAVA是2位)       11

int  2 4 4

short 2 2 2

long 4 4 4

float 4 4 4

double 8 8 8

long long 8 8 8

void*(指针变量)  248

常量

使用const表示一个常量

整型常量书写

10进制    10;18;

8进制  以0开头   045; 083;  不是真正的45和83

2进制  以0b开头  0b11110000111100001111000011110000;

16进制  以0X开头  0x3e51d;

实型常量书书写

单精度 float  以f结尾

双精度 double 计算机默认以双精度的形式表示一个小数

字符常量(单个字符)

用单引号括起来的字符(英文)   如'ab' 不合法  必须是单个字符

转义字符(特殊常量)

'\r'   '\n' '\\'   '\t'

字符串常量

用双引号括起来,里面可以是字符数字符号  "##$aa";


C语言中支持同时为多个变量定义和赋值

int a,b,c;

a=b=c=10;

也可以int a=10,b=20;



printf的占位符的用法及输出精度问题

%d  输出一下10进制的整数

 printf("%md",3.1415)   

如果m小于数据位数,则按实际数据输出 

m>0 且大于数据位数 则在左侧补空格

m<0 且大于数据位数 则在右侧补空格

printf("%0md",3.1415) 0只代表输出如果为别的数值则按%md处理

 如果m小于数据位数,则按实际数据输出 

m>0 且大于数据位数 则在左侧补0

m<0 且大于数据位数 则在右侧补0

%f 输出一个实数类型的数据(不能输出整型的数据)  默认输出6位小数,有效数位为7位(包括小数点前面的数字,如果再多了则丢失精度),如果不足6位,则补0     

 printf("%.nf",3.1415)只打印后N位

printf("%m.n",2.141569)  m表示一共输出多少位数据  如果不足位数 则左侧开始补空格

printf("%-m.n",2.141569)  一共输出多少位数据 如果不足位数 则右侧开始补0

%c 输出一个字符

%s 输出一个字符

%o  把一个数以8进制输出

%x 把一个数以16进制输出

%p 输出变量在内存中的地址

&(变量名)  获取变量的内存地址



Scanf(阻塞式函数)   与java InputStream中的read()类似

从键盘上接收数据

int a=0;

scanf("%d",&a);   &a代表把输入的内容存放到a这个地址

printf("%d",a);

结果为用户输入的值



*   跳过从键盘接收到的这个值 不把这个值赋值给变量地址  

int a=0;

scanf("%*d",&a);   &a代表把输入的内容存放到a这个地址

printf("%d",a);

结果为0;


注意 如果输入空格 回车 Tab会被忽略(如果是多个不同类型参数间的空格则不会被忽略)

如果输入的值与要求的值的类型不一样。则不给予赋值

例如 scanf("%d%c%d");直接输入值即可不要回车、空格或者scanf("%d,%c,%d");加分上逗上分隔符

也可以通过吸收空格的方式scanf("%d%c%c%c%d");的方式获取到想要的值


SizeOf(以字节数给出期操作数的存储大小)

int c=122;

printf("%d",sizeof(c));

也可以

printf("%d",sizeof c)


逗号表达试(个人理解最大的用处在于得到前面表达试处理的结果并返回)

求值过程是

分别求出逗号两边表达式的值,并以表达式n的值(最后一个表达式的值)作为整个逗号表达试的值







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值