面试指南 笔记(三) 数据类型

       速度略慢……

       在C语言中,数据类型可分为:基本数据类型、构造数据类型、指针类型、VOID类型。构造数据类型又包括数组、结构体和联合(union,这个我几乎没用过)。

       第一题:int a = 167; int b = 025; printf("%d %d", a, b);

       本题涉及各种进制的表示。比如:

       八进制整数以0开头,并且通常是无符号数;十六进制数以0X或0x开头。木有二进制。

       顺便提一下printf基本的转换说明:(摘自C程序设计语言 中文第二版 P135)

       %d - decimal, %i,integer,不过,这个从来没用过……十进制的。

       %u - unsigned 无符号十进制

%o - octal 无符号八进制

%x  - hexadecimal 无符号十六进制

%c - char 单个字符

%s - string 字符串中字符,直到遇到'\0'或已打印了由精度指定的字符数为止。

%f - float 浮点

%e - exponential 自然对数形式(貌似从来没用到)

%g 书上的说明就没看懂……

%p - pointer 指针(取决于具体的实现)

%% 打印%……大笑


第二题:short s1 = 1; s1 = s1 + 1L; s1 += 1L; 正确?

这个类型转换看得略糊涂,只知道两点:

1、+= 已经执行了类型强制转换。

2、在数据安全的情况下,大类型数据向小类型数据转换一定要显式地强制转换。

所以,第二句错了,第三句对了。


第三题:char x[] = "abcd" 和 char y[] = {'a', 'b', 'c', 'd'}不同吗?

这个倒是挺简单的,不过经常没注意而已,因为双引号的字符串后面还有一个'\0',所以长度上就不同了……


最后我在这里随便吐槽下这个莫名其妙的排版……抓狂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值