摘要:
字符串字面量(string literal)是一段双引号括起来的多字节字符序列,C/C++将其实现为具有静态存储连续性的字符数组。初学者(包括不少书籍)常将其称为字符串常量,但这说法只在C++成立,C中不成立。C中的常量只包括下列四种:6.4.4ConstantsSyntaxconstant:int... 阅读全文
摘要:
下标运算符[]一直被作为数组的专有运算符来介绍,经过长年的应用,人们也早已对这个用法习以为常,视为跟每天的午餐一样稀松平常的事情。当你很遐意地写下a[0]表达式的时候,如果抽空回过头来看看标准中关于下标运算符的条款,你很可能会大吃一惊:6.5.2.1 Array subscriptingConstr... 阅读全文
摘要:
C/C++的数组不同于VB等语言的数组,是有层次的,这个层次指的不是维度,而是象俄罗斯有名的套娃一样,一维套一维,亦即数组的嵌套,数组的元素也是数组,VB等语言的数组与之相比更像一个平面。数组嵌套这个现象从其它语言的角度来看有点奇特,但其实原因也很简单。C/C++的对象模型并不视数组为某种数值的简单... 阅读全文
摘要:
数组名是一个指针常量这种观点来源于数组名在表达式计算中与指针的结果等效性。例如下面的代码:int a[10], *p = a, *q;q = a + 1;q = p + 1;在效果上看,a + 1与p + 1是相同的,这很容易给人一种a就是p的假象,但,这仅仅是假象。鉴于指针常量包含了指针和常量两类... 阅读全文
摘要:
数组与指针生来就是双胞胎,多数人就是从数组的学习开始指针的旅程的。在学习的过程中,很自然就会经常听到或见到关于数组与指针的各种各样的看法,下面我节选一些在各种论坛和文章里经常见到的文字:“一维数组是一级指针”“二维数组是二级指针”“数组名是一个常量指针”“数组名是一个指针常量”.............. 阅读全文
摘要:
此文是笔者2005年所作《再再论指针》的修订版,与前文相比,本文主要的不同点有如下几点:一、引用C/C++标准的条款去阐述原理。C与C++标准共有四个已发行的正式版本,分别是C89/C90、C99、C++98和C++2003,为了避免重复的条款引用,在文字或语义相同的情况下,笔者只引用C99的条款,... 阅读全文
摘要:
################################# ## 基本知识 ## #################################当然我们一切都是从最简单的内建类型开始,最后我会做一些推广。先看一下基本的形式,我们从这里起步!Cpp代码--------------指针---... 阅读全文