《C语言深度剖析》笔记之C语言基础测试题
来源:互联网 发布:html5手机商城源码 编辑:程序博客网 时间:2024/06/11 20:04
C语言基础测试题
1. 代码输出:
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts(">6") : puts("<=6");
}
结果输出: >6
解释:在计算过程中,会出现隐式类型转换, int 转换为 unsigned int , -20将被转化为一个很大的数字。因此a+b很大。
2. 关于指针与数组所占内存的问题:
int * p = NULL;
sizeof(p) 值为4
sizeof(*p) 值为4
int a[100];
sizeof(a); 值为400
sizeof(a[100]) 值为4
sizeof(&a) 值为4
sizeof(&a[0]) 值为4
int b[100];
void fun( int b[100]);
void fun( int b[100])
{
sizeof(b); // 值为4
}
3. volatile的作用:
本关键字表明变量是一个易变的变量,因此编译器在进行编译时,每次使用改变量的值时,都需要从内存中重新加载。
例如:
volatile int i = 0;
int j = i;
int k = i;
如果i变量没有加volatile关键字,则在编译时将j k的赋值进行优化,将同一个i值赋值给两个变量,一旦加入了volatile则在赋值
时重新访问内存,加载i的值。
4. 判断当前系统是Big_endian 还是 Little_endian,实用程序进行测试。
int CheckSystem()
{
union check
{
int i;
char ch;
} c;
c.i = 1;
return ( c.ch == 1);
}
By Andy 2012-11-24
- 《C语言深度剖析》笔记之C语言基础测试题
- 《c语言深度剖析》笔记
- 《C语言深度剖析》笔记
- 《C语言深度剖析》笔记
- C语言深度剖析
- C语言深度剖析
- 《C语言深度剖析》
- C语言深度剖析
- C语言深度剖析
- C语言深度剖析
- C语言深度剖析
- C语言深度剖析-----数组基础
- 《C语言深度剖析》笔记之关键字篇
- 《C语言深度剖析》笔记 之 符号和预处理
- 《C语言深度剖析》笔记 之 指针与数组
- <<C语言深度剖析>>学习笔记之二:关键字详解
- <<C语言深度剖析>>学习笔记之三:符号
- c语言深度剖析之学习笔记(二)------------符号
- 数字图像处理回忆与总结
- 循环打印算法
- git rebase master First, rewinding head to replay your work on top of it... error: The following unt
- 把十进制转成二进制的一个简单易行的方法(不需要用栈) .
- 50 Most Frequently Used UNIX / Linux Commands (With Examples)
- 《C语言深度剖析》笔记之C语言基础测试题
- Hibernate3.3.2注解使用流程
- Java Web笔记 – Servlet技术介绍 生命周期 核心API 类方法调用顺序
- word贴心自动智能功能
- ScrollView反弹效果实现[bug修正版]
- dll动态加载方式
- How to Use C's volatile Keyword C 语言volatile
- mysql-jdbc 处理全0格式的时间 (Timestamp)
- Jmockit示例三部曲之二让我验证下你是否走对了