面试指南 笔记(三) 数据类型
2012-07-19 09:09
246 查看
在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',所以长度上就不同了……
第一题: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',所以长度上就不同了……
相关文章推荐
- 面试指南 笔记(三) 数据类型
- (数据类型-Number直接量前的“-”)JavaScript权威指南笔记4.2
- 02Redis入门指南笔记(基本数据类型)
- javascript权威指南 学习笔记之javascript数据类型
- JS权威指南笔记之数据类型
- Javascript学习指南(第2版)笔记(一) Script、数据类型和变量、操作符和语句
- 【笔记】【MDN】JavaScript指南 > 语法和数据类型
- Java核心技术及面试指南面试题,基本数据类型、封装类和运算操作的面试题
- (数据类型-字符串)JavaScript权威指南笔记5.1
- Oracle Database 11g SQL 开发指南学习笔记:binary_float和binary_double数据类型
- JNI学习笔记:JNI数据类型和数据结构
- Racket编程指南——3 内置的数据类型
- js基础笔记 javascript数据类型
- Swift 学习笔记第一天-变量常量,及数据类型
- 数据类型2-C语言学习笔记5
- python笔记2-标准数据类型
- 小白Java笔记——数据类型
- python笔记(一)常用数据类型和方法
- JAVA学习笔记数据类型及相关概念
- MySQL学习笔记(七)―― MySQL的数据类型(字符型)