
编程语言【C/C++】
文章平均质量分 77
文墨一剑
古今之成大事业、大学问者,必经过三种之境界:“昨夜西风凋碧树。独上高楼,望尽天涯路。”此为第一境也。
“衣带渐宽终不悔,为伊消得人憔悴。”此第二境也。
“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境也。
此等语皆非大词人不能道。然遽以此意解释诸词,恐为晏欧诸公所不许也。
展开
-
程序员面试宝典(第四版)——读书笔记-2、第六章:预处理、const与sizeof
6.1宏定义1、 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL解析:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一原创 2015-08-08 15:34:21 · 926 阅读 · 0 评论 -
C语言——原码、反码、补码、数据类型取值范围
记得刚学C语言的时候,对应数据类型的取值范围经常会有这样的疑问:比如8位的二进制补码范围是-128~127呀?为 什么会差一个数呀?(以8位为例)为了解释这个问题,我们先来了解下几个概念(原码、反码、补码):原码:它是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余原创 2015-08-01 09:50:05 · 4463 阅读 · 1 评论 -
浅析为什么char类型的范围是 —128~+127
在C语言中, signed char 类型的范围为-128~127,每本教科书上也这么写,但是没有哪一本书上(包括老师)也不会给你为什么是-128~127,这个问题貌似看起来也很简单容易, 以至于不用去思考为什么,不是有一个整型范围的公式吗: -2^(n-1)~2^(n-1)-1 n为整型的内存占用位数,所以int类型32位 那么就是 -(2^31)~2^31 -1 即 -214转载 2015-08-28 16:07:49 · 636 阅读 · 0 评论 -
内存对齐的规则以及作用
原文转自:http://www.cppblog.com/snailcong/archive/2009/03/16/76705.html首先由一个程序引入话题://环境:vc6 + windows sp2//程序1[plain] view plaincopy#include using namesp转载 2015-08-02 10:37:15 · 593 阅读 · 0 评论 -
C语言深度解剖——读书笔记-11、指针和数组
4.7 函数指针原创 2015-08-03 19:18:41 · 685 阅读 · 0 评论 -
C陷阱与缺陷 —— 读书笔记-2、语法“陷阱”
第二章 语法“陷阱”2.1 理解函数声明比如: (*(void(*)( )) 0) ( );任何复杂表达式其实只有一条简单的规则:按照使用的方式来声明。任何C变量的声明都由两部分组成:类型以及一组类似表达式的声明符(declarator)。声明符从表面上看与表达式有些类似,对它求值应该返回一个声明中给定类型的结果。最简单的声明符就是单个变原创 2015-08-04 15:07:19 · 913 阅读 · 0 评论 -
C语言深度解剖——读书笔记-10、指针和数组
4.5 多维数组和多级指针4.5.1 二维数组(重点)二维数组的布局:只需记住二维数组的存储也是线性的,编译器总是把二维数组看成一个一维数组,而一维数组的每一个元素又是一个数组。这里还碰到了一个逗号表达式的知识:用逗号运算符连接的式子叫做逗号表达式,它的值是最右边的表达式的值。 a.对于二维数组来说,二维数组就是一个一维数组的数组,每一个数原创 2015-08-03 15:26:29 · 618 阅读 · 0 评论 -
C语言深度解剖——读书笔记-12、内存管理
第五章 内存管理5.1 野指针野指针指指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL 避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。原因: 1、指针变量未初始化 —— 任何指针变量刚被创建时不会自动成原创 2015-08-03 20:35:20 · 848 阅读 · 0 评论 -
C陷阱与缺陷 —— 读书笔记-1、词法“陷阱”
《C陷阱与缺陷》是由Andrew Koenig所著,高巍译。Andrew Koenig是AT&T大规模程序研发部(前贝尔实验室)成员,不仅有着多年的C++开发,研究和教学经验,而且还亲身参与了C++的演化和变革,对C++的变化和发展起到重要的影响。第一章 词法陷阱编译器中负责将程序分解为一个一个符号的部分,一般称为“语法分析器”。1.1原创 2015-08-04 08:56:29 · 738 阅读 · 0 评论 -
C陷阱与缺陷 —— 读书笔记-3、语义“陷阱”
第三章 语义“陷阱” 3.1 指针和数组C语言中的数组值得注意的地方有以下两点:1、C语言中只有一维数组,而且数组的大小必须在编译期就作为一个常数确定下来 (注:C99标准允许变长数组(VLA)。GCC编译器中实现了变长数组,但细节与C99标准不完全一致。)2、对于一个数组,我们只能够做两件事:确定该数组的大小,原创 2015-08-04 18:52:13 · 624 阅读 · 0 评论 -
常用的C语言编程工具
中国有句古话叫做“工欲善其事,必先利其器”,可见我们对工具的利用是从祖辈就传下来的,而且也告诉我们在开始做事之前先要把工具准备好。有了好的工具那么我们做起事来也会事半功倍。学习C语言也是一样的,对于初学者来说往往选择一款好的编程工具是很头大的事情。下面小编就给大家点评几款常用的C语言编程工具,究竟那款适合你,由你自己决定。VC++ 6.0这款软件相信大家看到名字就觉得很亲切转载 2015-09-01 13:26:22 · 21371 阅读 · 1 评论 -
C语言深度解剖——读书笔记-9、指针和数组
4.4 指针数组和数组指针4.4.1 指针数组和数组指针的内存布局指针数组:首先它是一个数组,数组的元素都是指针,数组占多少字节由数组本身决定。它是“存储指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32位系统下永远是占4个字节,至于它指向的数组占多少字节并不知道。它是“指向数组的指针”的简称;下面来考考到底哪原创 2015-08-03 11:14:13 · 785 阅读 · 0 评论 -
C语言深度解剖——读书笔记-8、指针和数组
4.3 指针和数组之间的恩恩怨怨指针与数组的区别: 数组是数组,指针是指针,根本就是两个完全不一样的东西。当然要是在宏观的内存角度看,那一段相同类型的连续空间,可以说的上是数组。但是你可以尝试下,定义一个指针,在其他地方把他声明成数组,看看编译器会不会把两者混为一谈,反过来也不会。 但是为什么我们会经常弄混呢?第一,我们常常利用指针的方式去访问原创 2015-08-03 10:43:24 · 847 阅读 · 0 评论 -
C语言深度解剖——读书笔记-7、指针和数组
第四章 指针和数组原创 2015-08-03 09:16:14 · 1054 阅读 · 0 评论 -
C语言——数组知识大汇总
1、 定义数组: 相同类型数据项的集合。下标变量: 后面跟一个方括号内的下标的变量,指示一个数组元素。数组下标: 在数组名后的方括号内的数值或表达式,用于指示访问哪个数组元素。数组是由 ”类型名“ ”标识符“ ”维数“ 组成的复合型数据类型。”维数“ 表示数组中包含的元素个数,必须大于等于 1 的常量表达式。此表达式只能包含 ”整型字面常量“ ”枚举常量“ ”用常量表达原创 2015-08-17 10:11:02 · 770 阅读 · 0 评论 -
指针函数与函数指针的区别
本文转自:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针转载 2015-08-03 19:20:23 · 1105 阅读 · 0 评论 -
C语言深度解剖——读书笔记-4、符号
第二章 符号2.1注释符号知识点一:几个似是而非的注释问题C语言的注释可以出现在C语言代码的任何地方,这句话对不?好,我们来从下面的例子分析中找出答案:例: (a) int /*....*/i; (b)char *s="abcdefg //hijklmn";原创 2015-08-02 09:07:26 · 910 阅读 · 0 评论 -
C语言深度解剖——读书笔记-1、关键字
0.0 、32个关键字:auto、short、int、long、char、float、double(6中基本数据类型)、signed、unsigned、struct、union、enum、static、register、const、volatile、typedef、sizeof、extern、return、void、do、while、if、else、for、goto、switch、case、d原创 2015-07-31 20:55:59 · 654 阅读 · 0 评论 -
C语言深度解剖——读书笔记-6、预处理
3.4 #error预处理 #error error-message【注意】宏串error-message不用双引号包围。3.5 #line预处理#line number["filename"]#line的作用是改变当前行数和文件名称。(测试发现,在单步调试运行到#line这行时,会跳转到其所指示的那行代码)【注释】此命令主要用在原创 2015-08-02 11:15:41 · 659 阅读 · 0 评论 -
C/C++求职宝典21个重点笔记(常考笔试面试点)
1. char c = '\72'; 中的\72代表一个字符,72是八进制数,代表ASCII码字符“:”。2. 10*a++ 中a先进行乘法运算再自增(笔试中经常喜欢出这类运算符优先级容易混淆的输出问题)。3. const和static的作用太常见的问题了,下面给出一个较详细的参考答案:static关键字:1)函数体内static变量的作用范围为转载 2015-07-29 15:53:50 · 907 阅读 · 0 评论 -
开灯问题程序
1、开灯问题:有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),一次类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯的编号以及数目。k方法一:采用数组清零,然后改变数组值,1表示灯亮,0表示灯灭。#include #include原创 2015-07-30 19:46:12 · 1250 阅读 · 0 评论 -
C语言深度解剖——读书笔记-2、关键字
1.6 signed、unsigned 关键字规则:单纯的char 类型应该只用于字符值的存储和使用;有符号和无符号的 ”char“ 型变量只能用于数值的存储和使用。char 有三种不同的类型:单纯 char 、signed char 及 unsigned char 。signed char 和 unsigned char 类型是用来声明数值的; 单纯 char 类型是真正的字符类型,原创 2015-08-01 14:49:29 · 986 阅读 · 0 评论 -
C语言深度解剖——读书笔记-5、预处理
第三章 预处理章节目录1,宏定义 2,条件编译 3,文件包含 4,#error预处理5,#line预处理 6,#pragma预处理 7,#运算符 8,##运算符3.0 预处理指令原创 2015-08-02 09:36:23 · 839 阅读 · 0 评论 -
有关数据输入的问题
最近在刷华为iOJ上面的题,总是遇到要输入数据或者字符串,如要输入数据,中间用逗号隔开类似这样的,如果采用单纯的输入数据的话,逗号是不好处理的!后来我发现把它转化成字符串的输入然后再提取出数据来进行处理需要容易的多!特此记下,谨记!原创 2015-08-19 14:59:54 · 677 阅读 · 0 评论 -
C语言深度解剖——读书笔记-3、关键字(const、 volatile、extern、struct、union、enum、typedef)
1.13 const 关键字也许该被替换成 readonlyconst是constant的缩写,是恒定不变的意思,也翻译为常量、常数等。【注意】【1】 很多人都认为被const修饰的值是常量。这是不精确的,精确地说应该是:只读的变量,其值在编译时不能被使用,因为编译器在编译时不知道其存储的内容。#include int main() {转载 2015-08-01 16:41:45 · 1265 阅读 · 0 评论