1. C语言中无符号数与有符号数

unsigned int a = 6;
int b = -20;
printf("a+b = %d\n",a+b); #输出-14
printf("a+b %s \n",(a+b)>0 ? "> 0":" < 0"); #输出a+b > 0

有符号数和无符号数在进行比较运算时(==,>=,<=,>,<),有符号数隐式的转换成无符号数。上述中,a+b的值为-14(1111_1111_1111_0010),但是a+b 比较时,隐式转换成无符号数,因此输出为>0

记住一点:-1为有符号整型数据,常量数值在整形范围内,均为int类型,如果为正数或0,则作为无符号int,否则为有符号int。比较运算符两边的数据类型会在编译器的帮助下,自动统一的。

再记住一点:C语言规定是从取值范围小的往大的提升,char—>unsigned char—>short—>unsigned short—>int--->unsinged int—>long—>unsigned long –>long long ---> unsigned long long

2. 函数不能反悔栈内存的指针,可以返回堆内存的指针。对于空指针,连续两次free,不会出错。对于非空指针,连续两次free,会出错。

int *a1;
a1 = (int*)malloc(10);
a1[0]=10;
printf("a1:%p a1[0]:%d \n",a1,a1[0]); //输出a1:0x85c9008 a1[0]:10
free(a1);
//free(a1); //加上这句会报错
printf("a1:%p a1[0]:%d \n",a1,a1[0]); //输出a1:0x85c9008 a1[0]:0

根据输出可以得知,free后,a1的指向的地址值没有改变,但是这块地址所代表的空间已经是无效空间了,不能使用。为了防止这种情况,free后的,应该设置a1= NULL; 这样,防止后面的代码对a1的空间误操作。

3. 引用与指针有什么区别?

引用必须初始化,指针不需要。

引用初始化之后不能被改变,指针可以改变所指的对象。

不存在指向空值的引用,但是存在指向空值的指针

4.C语言算法题目(一)

C语言算法题目(二)

IT公司笔试题目 IT公司笔试题目2 IT公司笔试题目3  IT公司笔试题目4

C语言基本函数构造

IT公司智力测试题目

面试中经常出现的算法

关于数组的几道面试题

C/C++笔试题目的更多相关文章

  1. # C/C++的笔试题目

    p,li { white-space: pre-wrap } # C/C++的笔试题目 + include<> 和include"" 的区别 + sizeof操作符与字 ...

  2. 汇顶科技&&硬件类笔试题目

    汇顶科技硬件类笔试题目,每年都有变化,但是题目类型都差不多.汇顶科技17年在南京地区大概招了20个左右吧,给的待遇还是不错的,工作地点上海深圳

  3. 九度OJ 1525 子串逆序打印 -- 2012年Google校园招聘笔试题目

    题目地址:http://ac.jobdu.com/problem.php?pid=1525 题目描述: 小明手中有很多字符串卡片,每个字符串中都包含有多个连续的空格,而且这些卡片在印刷的过程中将字符串 ...

  4. [笔试题目]使用Stringbuffer无 参的构造函数创建 一个对象时,默认的初始容量是多少? 如果长度不够使用了,自动增长多少倍?

    [笔试题目] 使用Stringbuffer无 参的构造函数创建 一个对象时,默认的初始容量是多少? 如果长度不够使用了,自动增长多少倍? StringBuffer 底层是依赖了一个字符数组才能存储字符 ...

  5. Android常见面试笔试题目

    Android常见面试笔试题目 1.在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 答:可以处理消息循环的线程,他是一个拥 ...

  6. C++笔试题目大全(笔试宝典)(不断完善中)

    1.new . delete . malloc . free 关系 delete 会调用对象的析构函数 , 和 new 对应 free 只会释放内存, new 调用构造函数. malloc 与 fre ...

  7. js坑爹笔试题目汇总(持续更新中)

    把你的面试官问倒,你就是一个合格的面试者了,以下总结一些易错的js笔试题目,会持续更新中.欢迎关注 1,考察this var length = 10 function fn(){ alert(this ...

  8. 几道经典的SQL笔试题目

      几道经典的SQL笔试题目(有答案) (1)表名:购物信息 购物人      商品名称     数量 A            甲          2 B            乙        ...

  9. 想了很久,一道Microsoft的笔试题目 —— Reversing Linked List

    Reversing Linked List Given a constant K and a singly linked list L, you are supposed to reverse the ...

随机推荐

  1. 从零开始学习Hadoop--第1章 Hadoop的安装

    Hadoop的安装比较繁琐,有如下几个原因:其一,Hadoop有非常多的版本:其二,官方文档不尽详细,有时候更新脱节,Hadoop发展的太快了:其三,网上流传的各种文档,或者是根据某些需求定制,或者加 ...

  2. Angular 1.2.27在IE7下的兼容问题

    最近负责公司的一个国外项目,老外指定要用angular,并且要兼容到IE7. 项目使用的是Angular版本是1.2.27,为了能在IE7下跑,需要做如下配置 1. 加载json2.js 2. 加载h ...

  3. Jordan Lecture Note-1: Introduction

    Jordan Lecture Note-1: Introduction 第一部分要整理的是Jordan的讲义,这份讲义是我刚进实验室时我们老师给我的第一个任务,要求我把讲义上的知识扩充出去,然后每周都 ...

  4. SQL Server日期函数总结

    获得一个月的天数:首先到得一个月最后一天的日期,通过 SQL Server 日期函数 day() 取得日期中的“天 ”部分 获得 2008 年 2 月份的天数:select day(cast('200 ...

  5. 一种快速求fibonacci第n个数的算法

    利用动态规则的思路,摒弃传统的递归做法,可以得到一种快速的求fibonacci第n个数的算法: ''' 求第n(从1开始)位fibonacci数 fibonacci数列前两位为0, 1. 后面每一位数 ...

  6. CollatingOfData 之 JsonHelper

    1 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System. ...

  7. 配置hibernate例子

    一.hiberbate.cfg.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hib ...

  8. rpm命令使用说明

    RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种 ...

  9. 最简单的Linux-ACL操作

    添加ACL setfacl -m u:'username':rw 'dir or file'   "-R可以迭代式的给目录下所有文件都添加相同的ACL" 查看ACL规则 getfa ...

  10. template和templateUrl区别与联系

    templateUrl其实根template功能是一样的,只不过templateUrl加载一个html文件,template后面根的是html的标签. .state('menu.about', { u ...