为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > [究竟是谁的错]C 中的CONST究竟是干嘛的

[究竟是谁的错]C 中的CONST究竟是干嘛的

2018-04-12 21页 doc 44KB 12阅读

用户头像

is_574951

暂无简介

举报
[究竟是谁的错]C 中的CONST究竟是干嘛的[究竟是谁的错]C 中的CONST究竟是干嘛的 [究竟是谁的错]C++中的CONST究竟是干 嘛的 篇一 : C++中的CONST究竟是干嘛的 1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。,) 2、为什么引入const, const?推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、cons有什么主要的作用, 可以定义const常量,具有不可变性。?例如: const?int?Max=100;?int?Array[Ma...
[究竟是谁的错]C  中的CONST究竟是干嘛的
[究竟是谁的错]C 中的CONST究竟是干嘛的 [究竟是谁的错]C++中的CONST究竟是干 嘛的 篇一 : C++中的CONST究竟是干嘛的 1、什么是const? 常类型是指使用类型修饰符const的类型,常类型的变量或对象的值是不能被更新的。,) 2、为什么引入const, const?推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、cons有什么主要的作用, 可以定义const常量,具有不可变性。?例如: const?int?Max=100;?int?Array[Max]; 便于进行类型检查,使编译器对处理内容有更多了解,消除了一些 隐患。例如: void f { ………} 编译器就会知道i是一个常量,不允许修改; 可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变~如中,如果想修改Max的内容,只需要:const int Max=you want;即可~ 可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。?还是上面的例子,如果在函数体内修改了i,编译器就会报错;?例如: void?f?{?i=10;//error!?} ?为函数重载提供了一个参考。 class?A?{?…… void?f?{……}?//一个函数 void?f?const?{……}?//上一个函数的重载?…… }; ?可以节省空间,避免不必要的内存分配。?例如: #define?PI?3.14159?//常量宏 const?doulbe?Pi=3.14159;?//此时并未将Pi放入ROM中?…… double?i=Pi;?//此时为Pi分配内存,以后不再分配~ double?I=PI;?//编译期间进行宏替换,分配内存 double?j=Pi;?//没有内存分配 double?J=PI;?//再进行宏替换,又一次分配内存~ const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。 4、如何使用const, 修饰一般常量???一般常量是指简单类型的常量。这种常量在定义时,修饰符const可以用在类型说明符前,也可以用在类型说明符后。?例如: int?const?x=2;??或??const?int?x=2; 修饰常数组????定义或说明一个常数组可采用如下格式: int?const?a[5]={1,?2,?3,?4,?5}; const?int?a[5]={1,?2,?3,?4,?5}; 修饰常对象??常对象是指对象常量,定义格式如下: class?A;????const?A?a; A?const?a;????定义常对象时,同样要进行初始化,并且该对象不能再被更新,修饰符const可以放在类名后面,也可以放在类名前面。 修饰常指针 const?int?*A;?//const修饰指向的对象,A可变,A指向的对象不可变 int?const?*A;?//const修饰指向的对象,A可变,A指向的对象不可变 int?*const?A;?//const修饰指针A,?A不可变,A指向的对象可变 const?int?*const?A;//指针A和A指向的对象都不可变 修饰常引用??使用const修饰符也可以说明引用,被说明的引用为常引用,该引用所引用的对象不能被更新。其定义格式如下: const?double?&?v; 修饰函数的常参数?const修饰符也可以修饰函数的传递参数,格式如下: void?Fun;?告诉编译器Var在函数体中的无法改变,从而防止了使用者的一些无意的或错误的修改。 修饰函数的返回值:?const修饰符也可以修饰函数的返回值,是返回值不可被改变,格式如下: const?int?Fun1;?const?MyClass?Fun2; 修饰类的成员函数:?const修饰符也可以修饰类的成员函数,格式如下: class?ClassName?{ public: int?Fun?const;???….. };?这样,在调用函数Fun时就不能修改类里面的数据 在另一连接文件中引用const常量 extern?const?int?i;//正确的引用 extern const int j=10;//错误~常量不可以被再次赋值 另外,还要注 意,常量必须初始化~ 例如: const int i=5; 5、几点值得讨论的地方: const究竟意味着什么, 说了这么多,你认为const意味着什么,一种修饰符,接口抽象,一种新类型, 也许都是,在Stroustup最初引入这个关键字时,只是为对象放入ROM做出了一种可能,对于const对象,C++既允许对其进行静态初始化,也允许对他进行动态初始化。理想的const对象应该在其构造函数完成之前都是可写的,在析够函数执行开始后也都是可写的,换句话说,const对象具有从构造函数完成到析够函数执行之前的不变性,如果违反了这条规则,结果都是未定义的~虽然我们把const放入ROM中,但这并不能够保证const的任何形式的堕落,我们后面会给出具体的办法。无论const对象被放入ROM中,还是通过存储保护机制加以保护,都只能保证,对于用户而言这个对象没有改变。换句话说,废料收集器或数据库系统对一个const的修改怎没有任何问。 位元const?V.S.?抽象const? 对于关键字const的解释有好几种方式,最常见的就是位元const 和 抽象const。下面我们看一个例子: class A { public: …… A f; …… }; 如果采用抽象const进行解释,那就是f函数不会去改变所引用对象的抽象值,如果采用位元const进行解释,那就成了f函数不会去改变所引用对象的任何位元。 我们可以看到位元解释正是c++对const问题的定义,const成员函数不被允许修改它所在对象的任何一个数据成员。 为什么这样呢,因为使用位元const有2个好处: 最大的好处是可以很容易地到违反位元const规定的事件:编译器只用去寻找有没有对数据成员的赋值就可以了。另外,如果我们采用了位元const,那么,对于一些比较简单的const对象,我们就可以把它安全的放入ROM中,对于一些程序而言,这无疑是一个很重要的优化方式。 扩展:c const / c const用法 / c static const 当然,位元const也有缺点,要不然,抽象const也就没有产生的必要了。 首先,位元const的抽象性比抽象const的级别更低~实际上,大家都知道,一个库接口的抽象性级别越低,使用这个库就越困难。 其次,使用位元const的库接口会暴露库的一些实现细节,而这往往会带来一些负面效应。所以,在库接口和程序实现细节上,我们都 应该采用抽象const。 有时,我们可能希望对const做出一些其它的解释,那么,就要注意了,目前,大多数对const的解释都是类型不安全的,这里我们就不举例子了,你可以自己考虑一下,总之,我们尽量避免对const的重新解释。 放在类内部的常量有什么限制, 看看下面这个例子: class?A?{ private: const?int?c3?=?7;?//???? static?int?c4?=?7;?//???? static?const?float?c5?=?7;?//?????…… }; 你认为上面的3句对吗,呵呵,都不对~使用这种类内部的初始化语法的时候,常量必须是被一个常量表达式初始化的整型或枚举类型,而且必须是static和const形式。这显然是一个很严重的限制~ 那么,我们的委员会为什么做这样的规定呢,一般来说,类在一个头文件中被声明,而头文件被包含到许多互相调用的单元去。但是,为了避免复杂的编译器规则,C++要求每一个对象只有一个单独的定义。如果C++允许在类内部定义一个和对象一样占据内存的实体的话,这种规则就被破坏了。 如何初始化类内部的常量, 一种方法就是static?和?const?并用,在内部初始化,如上面的例子;?另一个很常见的方法就是初始化列表: class?A?{ public: A:test?{} private: const?int?i; };?还有一种方式就是在外部初始化,例如: class?A?{ public: A?{} private: static?const?int?i;//注意必须是静态的~ }; const?int?A::i=3; 常量与数组的组合有什么特殊吗,?我们给出下面的代码: const?int?size[3]={10,20,50}; int?array[size[2,; 有什么问题吗,对了,编译通不过~为什么呢, Const可以用于集合,但编译器不能把一个集合存放在它的符号表里,所以必须分配内存。在这种情况下,const意味着“不能改变的一块存储”。然而,其值在编译时不能被使用,因为编译器在编译时不需要知道存储的内容。自然,作为数组的大小就不行了:) 你再看看下面的例子: class?A?{ public: A:test[2]?{}//你认为行吗, private: const?int?test[2]; }; vc6下编译通不过,为什么呢, 关于这个问题,前些时间,njboy问我是怎么回事,我反问他:“你认为呢,”他想了想,给出了一下解释,大家可以看看:我们知道编译器堆初始化列表的操作是在构造函数之内,显式调用可用代码之前,初始化的次序依据数据声明的次序。初始化时机应该没有什么问题,那么就只有是编译器对数组做了什么手脚~其实做什么手脚,我也不知道,我只好对他进行猜测:编译器搜索到test发现是一个非静态的数组,于是,为他分配内存空间,这里需要注意了,它应该是一下分配完,并非先分配test[0],然后利用初始化列表初始化,再分配test[1],这就导致数组的初始化实际上是赋值~然而,常量不允许赋值,所以无法通过。 呵呵,看了这一段冠冕堂皇的话,真让我笑死了~njboy别怪我揭你短呀:)我对此的解释是这样的:C++标准有一个规定,不允许无序对象在类内部初始化,数组显然是一个无序的,所以这样的初始化是错误的~对于他,只能在类的外部进行初始化,如果想让它通过,只需要声明为静态的,然后初始化。 这里我们看到,常量与数组的组合没有什么特殊~一切都是数组惹的祸~ this指针是不是const类型的, this指针是一个很重要的概念,那该如何理解她呢,也许这个话题 太大了,那我们缩小一些:this指针是个什么类型的,这要看具体情况:如果在非const成员函数中,this指针只是一个类类型的;如果在const成员函数中,this指针是一个const类类型的;如果在volatile成员函数中,this指针就是一个volatile类类型的。 const到底是不是一个重载的参考对象, 先看一下下面的例子: class?A?{ …… void?f?{……}//一个函数 void?f?const?{……}//上一个函数的重载 …… };?上面是重载是没有问题的了,那么下面的呢, class?A?{ …… void?f?{……}//一个函数 void?f?{……}//,,,,, …… };?这个是错误的,编译通不过。那么是不是说明内部参数的const 不予重载呢,再看下面的例子: class?A?{ …… void?f?{……}//一个函数 void?f?{……}//,,,,, …… }; 这个程序是正确的,看来上面的结论是错误的。为什么会这样呢,这要涉及到接口的透明度问题。按值传递时,对用户而言,这是透明的,用户不知道函数对形参做了什么手脚,在这种情况下进行重载是没有意义的,所以规定不能重载~当指针或引用被引入时,用户就会对函数的操作有了一定的了解,不再是透明的了,这时重载是有意义的,所以规定可以重载。 什么情况下为const分配内存, 以下是我想到的可能情况,当然,有的编译器进行了优化,可能不分配内存。 A、作为非静态的类成员时; B、用于集合时; C、被取地址时; D、在main函数体内部通过函数来获得值时; E、const的?class或struct有用户定义的构造函数、析构函数或基类 时;。 F、当const的长度比计算机字长还长时; G、参数中的const; H、使用了extern时。?不知道还有没有其他情况,欢迎高手指点:) 临时变量到底是不是常量, 很多情况下,编译器必须建立临时对象。像其他任何对象一样,它们需要存储空间而且必须被构造和删除。区别是我们从来看不到编译器负责决定它们的去留以及它们存在的细节。对于C++标准草案而言:临时对象自动地成为常量。因为我们通常接触不到临时对象,不能使用与之相关的信息,所以告诉临时对象做一些改变有可能会出错。当然,这与编译器有关,例如:vc6、vc7都对此作了扩展,所以,用临时对象做左值,编译器并没有报错。 扩展:c const / c const 用法 / c static const 与static搭配会不会有问题,?假设有一个类: class?A?{ public: …… static?void?f?const?{?……} …… }; 我们发现编译器会报错,因为在这种情况下static不能够与const共存~ 为什么呢,因为static没有this指针,但是const修饰this指针,所以… 如何修改常量, 有时候我们却不得不对类内的数据进行修改,但是我们的接口却被声明了const,那该怎么处理呢,我对这个问题的看法如下: 1)标准用法: mutable?class?A?{ public: A:test?{?} void?SetValueconst?{?test=i;?} private:?mutable?int?test;//这里处理~ }; 2)强制转换: const_cast?class?A?{ public: A:test?{?} void?SetValueconst?{ const_cast?=i; }//这里处理~ private: int?test; }; 3)灵活的指针: int*?class?A?{ public: A:test?{?} void?SetValueconst?{?*test=i;?} private: int*?test;?//这里处理~ }; 4)未定义的处理 class?A?{ public: A:test?{?} void?SetValueconst?{ int?*p=&test;?*p=i; }//这里处理~ private: int?test; };?注意,这里虽然说可以这样修改,但结果是未定义的,避免使 用~ 5)内部处理:this指针 class?A?{ public: A:test?{?} void?SetValueconst?{ this)->test=i; }//这里处理~ private: int?test; }; 6)最另类的处理:空间布局 class?A?{ public: A:test,c?{?} private: char?c; const?int?test; }; int?main { A?a; A*?pa=&a; char*?p=pa; int*?pi=;?这里要注意2点: 1)const对象必须被初始化~所以是不能够少的。 2)new返回的指针必须是const类型的。 那么我们可不可以动态创建一个数组呢, 答案是否定的,因为new内置类型的数组,不能被初始化。 这里我们忽视了数组是类类型的,同样对于类内部数组初始化我们也做出了这样的忽视,因为这涉及到数组的问题,我们以后再讨论。 原文链接 扩展:c const / c const用法 / c static const 篇二 : 恰似君心千年泪:这梨花满地,零落成雪,葬的究竟是谁, 又一次逃离,又一次回来。[, 我终于记起有谁曾经不止一次跟我说过,我是属于文字的,我只能随着我的文字流浪,直到情尽词穷的那一天,不然,所做的任何努力 都是徒劳……我能够不聊天,不进群组,不看任何网页,但是,我终不能停止我的思维,我无法离开我赖以延续生命的文字。 其实我知道,我一直是个作茧自缚的人,对很多人、很多事都放不开,放不下。对人放不开,这一份衣不如新,人不如旧的眷恋总让人伤了又伤,对事放不开便更惨了,总是黯黯地品尝着委屈,心思蜷曲。一直愁心漫溢,恨不胜收,孤独的让自己走在自己的阴影里,身边灯红酒绿、莺歌燕舞的生活似乎是我终身也攀附不进的另一个世界。 经历了很多的磨折与坎坷,只是到现在还是没能真正悟透“人生不如意事十之八九”很完美的将自己封闭在一个假想的空间,一遍遍编织着自己美丽的梦,在网络中用自己的方式一遍遍的欺骗着自己,如果能逃离,也许反而能学会释然。总渴望生活也如梦想般完美,当偶尔突然清醒的时候,哪些无法回避的落差便让自己一次次狼狈不堪。 我的文字,更多的都是那些哀怨缠绵的情感纠结,似乎我这辈子就为情而生,其实不然的,许就是看惯了人情的冷漠和人心的现实,便只有将这最后的美好寄托在这字里行间,寄托在这自认为是最纯净的、也完全只属于自己的空间,不求人懂,也不希望被打扰,冷暖自知.然而,也终还是有幻想的,总希望某日会有一人,很简单的爱着着自己,象自己爱着他一样,与世俗无关,就在精神领域里,也就完完全全的属于自己一个人,可惜,终究还是等不到。 因为梦,所以哀伤。却不知道这梨花满地,零落成雪,葬的,究竟是谁, 一心纠结于来生,一生纠结于梦,纠结于化蝶的唯美,其实只是想做个被爱宠的孩子,被温情呵护的女人,做个温婉如水的女人,做个很简单的女人……直到那些固执的梦像个毒瘤一样遗留在身体内,如春草般孜孜不倦的蔓延开来,缠紧身心,顽固到无法拔除,无法回避。这样的纠结,已然跟生死无关…… 无情不似多情苦多情苦,廊桥一梦枉千年。终于还是看见老天最残酷的惩罚----让我在最清醒的状态看见自己飘扬的斑斓的梦烟花般一片片陨落,像梨花在春光最甚的时候凋谢。 生命恰似三月的花,看的见开始,猜不到结局。文字,终还是逃不掉忧伤…… 读宋词,读到的是一颗颗百转千回的诗心、词心。游子意、故人情、离别绪、相思苦,无不温情脉脉,令人柔肠百转;又有那贬谪痛、失意恨、去国忧,将不羁的文人绊得失魂落魄,清泪涟涟。 泪缘结在情,心若一动,泪已千行,今日姑且作一决堤,那流淌缠绵在心扉的三滴泪,晶莹着万古风月绝唱千千回,凝结了多少痴情守候真无悔。 第一滴眼泪关乎江山社稷和个人政治抱负,哭苏轼哀国家大局之不可为~ 卜算子?黄州定慧院寓居作 缺月挂疏桐,漏断人初静。谁见幽人独往来,缥缈孤鸿影。 惊起却回头,有恨无人省。拣尽寒枝不肯栖,寂寞沙洲冷。 读书人的孤独是自找的。有时孤独是一种财富,一种境界,一种感觉。中国读书人心怀天下,以身许国,豪情万丈,壮怀激烈,却往往因为看的太远,在芸芸众生中显得不合时宜,走得太快,常常环顾四周却发现空无一人;想得太深,冥思苦想之至旁人难以企及。心似已灰之木,身如不系之舟。 一个人,走了千年;几阙词,吟了千载,谁能跨越千年而美丽, 第二滴眼泪关乎文章知己的寻求和个人才华的认可,哭柳永的佳词难遇知音。 八声甘州 对潇潇暮雨洒江天,一番洗清秋。渐霜风凄紧,关河冷落,残照当楼。是处红衰翠减,苒苒物华休。惟有长江水,无语东流。 不忍登高临远,望故乡渺邈,归思难收。叹年来踪迹,何事苦淹留,想佳人妆楼望,误几回、天际识归舟。争知我,倚阑干处,正恁闲愁。 那个被宋代仁宗皇帝赵祯斥之为“且去浅斟低唱,何要虚名”柳三变,也是那个“凡有井水饮处,即能咏柳词”的柳永。终其一生,他都难遇知他懂他的文坛知己,倒是那些生活在社会最底层的妓女们温暖了他那颗孤独的心灵。 人生没有比不能施展自己才华更痛苦的事,这是智慧的痛苦。 第三滴眼泪关乎爱情。哭陆游与唐婉的才子错过佳人。 那是令人日渐消瘦的心事,是举箸前莫名的伤悲,是记忆里一场不散的筵席,是不能饮不可饮,却仍要拼却的一醉…… 他和她曾是青梅竹马、两小无猜的表兄妹;他和她曾是诗酒唱和、心灵相通的精神知己;他和她亦曾是琴瑟和谐、举案齐眉的恩爱夫妻。然而,谁又能料到,“东风恶,欢情薄”,他的母亲害怕她会令她沉湎于儿女私情,而忘记了功名利禄,硬是逼迫他休了他亲爱的妻子,造成他“一怀愁绪,几年离索”,在沈园与她无意重逢时只能哀叹“错错错”,因为此时携手佳人共游的已不是他,而是她的新夫赵士程…… 少年的恩爱,休妻的无奈,沈园的重逢,留给他一生痛苦的回忆。“身上的创伤,可能有千百处,心上的创伤,却只有一次,因为那个地方是他心灵上最脆弱最容易受到伤害的地方,就算伤口已愈,但只要一回想,它立刻就会复发……”当八十岁的他再次来到当年重逢的沈园时,爱妻早已“梦断香消四十年”,他“犹吊遗踪一泫然”,忘不了,“伤心桥下碧波绿,曾是惊鸿照影来”;劝自己,“也信美人终作土”却始终“不堪幽梦太匆匆”。“命运莫测,犹如苦海行舟,一当爱的对话结束,便落入一年复一年的永劫之中,这就是苦的本义,而战胜苦的力量或许正是那恒久的爱。在人去楼空后便成为内在的怀念,这是爱的另一种形式,而忧伤是它最明显的特征。”宋词里的第三滴眼泪,哭陆游与唐婉的才子错过佳人。 钗头凤 陆游 红酥手,黄籘酒,满城春色宫墙柳。东风恶,欢情薄,一怀愁绪,几年离索。错,错,错~ 春如旧,人空瘦,泪痕红浥鲛绡透。桃花落,闲池阁,山盟虽在,锦书难托。莫,莫,莫~ 陆游题词之后,又深情地望了唐婉一眼,便怅然而去。陆游走后,唐婉孤零零地站在那里,将这首《钗头凤》词从头至尾反复看了几遍,她再也控制不住自己的感情,便失声痛哭起来。回到家中,她愁怨难解,于是也和了一首《钗头凤》词。唐婉不久便郁闷愁怨而死。 世情薄,人情恶,雨送黄昏花易落。晓风乾,泪痕残,欲笺心事,独语斜栏。难,难,难~ 人成各,今非昨,病魂常似秋千索。角声寒,夜阑珊,怕人寻问,咽泪装欢。瞒,瞒,瞒~ 此后,陆游北上抗金,又转川蜀任职,几十年的风雨生涯,依然无法排遣诗人心中的眷恋,他六十三岁,“偶复来菊缝枕囊,凄然有感”,又写了两首情词哀怨的诗: 采得黄花作枕囊,曲屏深幌闷幽香。 唤回四十三年梦,灯暗无人说断肠~ 少日曾题菊枕诗,囊编残稿锁蛛丝。 人间万事消磨尽,只有清香似旧时~ 在他六十七岁的时候,重游沈园,看到当年题《钗头凤》的半面破壁,触景生情,感慨万千,又写诗感怀: 枫叶初丹桷叶黄,河阳愁鬓怯新霜。 林亭感旧空回首,泉路凭谁说断肠。 坏壁醉题尘漠漠,断云幽梦事茫茫, 年来妄念消除尽,回向蒲龛一炷香。 相爱亦如造梦,死去的或者离开的,梦醒不醒都万事皆休。活着的留在梦境中走不出来的那个人,才是最哀苦的,“时间太瘦,指缝太宽”,滔滔逝水,匆匆流年,凄凉又如何, 梨花满地,零落成雪,葬的究竟是谁, 回想起纳兰的一生,不由得想起一句话“一生恰如三月花”。 第一次注意到他,因为他的名字 :纳兰容若,但我更喜欢叫他纳兰性德。这四个字就宛如一阕最美的词。唇齿间流转,芳香馥郁。偶然间的一撇爱上了他的词,不由的,想要更了解他。 纳兰出生富贵又是康熙的近臣,多次扈从圣驾前往边塞,由于这些经历,他的词中多了些江南中原的文弱词人无法涉足的边塞风光。使得他的词的内容更加丰富。面对着塞上绵延空灵的飞雪,发出感慨“冷处偏佳,别有根芽不是人间富贵花。” 纳兰始终被人记得,不是因为他是权相之子,康熙的宠臣近侍,而是作为一个横绝一代的词人,以诡异的近乎心碎的惊艳出现在清朝的上空。他与阳羡派代表陈维崧,浙西派代表朱并成为“清词三大家”,人说他是李重光后身。李后主是何人,那是词中的千古一帝,不可撼动的人啊~ 纳兰词愁心漫溢,恨不胜收。以前我一直不解,他因何而愁, 他有显赫高贵的家世,惊人眼目的才气,刻骨铭心的初恋情人,美貌聪颖的红颜知己,贤淑大度的妻子,婉转温存的妾室。此外还有一群相 待极厚的知心朋友。他相与的这些江南名士们,是康熙费心网罗,却还轻易不肯折节的人。 人生至此,夫复何言~ 渐渐地,我想我了解了纳兰惆怅的原因。他出生于富贵之家,他的父亲明珠是位权臣。从小一起长大的康熙纵是再信任纳兰,也不敢委以重任。“空负凌云万丈志,一生襟抱未曾开” 就这样,曾今让人羡慕的家世,成了纳兰事业的绊脚石。他成了帝王权力之争的牺牲者。 事业的不得志,使得纳兰对于情的追求越来越执着,像信仰一般追寻。纳兰多情却不滥情,伤情却不绝情。爱情成为他的诗歌创造的一个源泉。他的爱情故事被人津津乐道。他是一个重情的男子,儿时的恋人入宫成了皇帝的妃子。这份情,他始终放不下,辗转在遗憾中不得解脱,以至于险些辜负了身边的妻子。连顾贞观这个局外人都感慨“家家争唱饮水词,纳兰心事几人知,”他心有别恋,他的妻子能不知道么,她只是不说,她在等,等他看见身边的自己。可惜…… 纳兰一心纠结于旧梦,直到这温婉的女子因为他而溘然长逝他才恍悟他亏欠了她多少。“沉思往事立残阳,当时只道是寻常。”悼亡之音破空而起成就了《饮水词》中拔地而起的高峰,无人超越。 康熙二十四年五月三十日,纳兰辞世,年仅三十一岁。在他最盛年 的时候,他离开,就像梨花在春光最盛的时候凋落。 这梨花满地,零落成雪,葬的究竟是谁, 看得见开始,看不见结局——一生恰如三月花。 篇三 : 宋代名画《听琴图》的作者究竟是谁 发表于《东方收藏》第2期 宋代名画《听琴图》的作者究竟是谁 ———也析南宋院画大师孙必达的艺术成就 作者:朱亦梅 有宋徽宗赵佶题押的《听琴图》,究竟是否真笔,历来说法不一,笔者认为既非御笔画也非御题画,而是出自南宋院人手笔。,蓝线勾勒出《折栏图》朱云的头颈部线条轮廓造型动势。两图线条轮廓和动势同比例相叠吻合,发现形象、动势造型高度一致”,和用松枝构织的“孙”字的主要局部。作者用了障眼法,使名字在似与不似之间。构想之奇之巧,叹为观止。孙必达善于以隐蔽的方式留名。 图A 图 B 图C 图四 A:《折栏图》局部 赏石与必字对照:“必” 淳化阁帖 肃府本“必”淳化阁帖 张照本 B: 《折栏图》局部 赏石与达字对照:“达” 淳化阁帖 C: 松树与孙字对照:“孙” 孝女曹娥碑 同样在《听琴图》中,作者依旧故伎重演,将自己的名字掩映藏匿在树木花草中。()经笔者仔细反复观察琢磨,作者对盆景、花卉及赏石和大树都做了有意图的细节性排列和造型的处理,但无论如何障眼或变化,但仍离不开“孙”、“必”、“达”以重叠的花押或交织性文字的基本架构。我们用分割又连结的方法进行分析区别,发现“孙必达”之名跃然纸上。 《听琴图》前景中的盆景花卉赏石与“必”字、“逹”字对照 图五, 图五, 将图置前景的盆景赏石涂黑,发现“必”字突显在花卉的结构之中,并隐隐约约、散落和聚合产生了花卉的造型,仿铜炉花盆和赏石构成“逹”字的基本结构,尽管做了些许变形,但仍煞是突显具体。 《听琴图》中的松树与“孙”字对照,其松树造型告诉我们,作者蓄意将“子”与“系”重叠成松树的造型。 图六, 图六, 用红线勾勒出的“孙”字之偏旁“子”和“系” 与松树树干的造型吻合,“子”、“系”均交织重叠隐藏于大树树干枝叉,构成画面中占绝对空间的“孙”字。 大树、花卉盆景及赏石构成了醒目的“孙必达”三字。不言自明《听琴图》的作者就是孙必达。 孙必达是南宋理宗时期画院待诏,《杭州府志?图绘宝典》载:“孙必达,宋?钱塘人,善释道鬼神,庄严诙诡,各极其致,师苏汉臣而 过之,淳祐间待诏画院。”。“庄严诙诡”之“诡”有“隐蔽”、“欺诈”意思,作者善于在画面上以隐蔽的方式留名,借以对抗南宋画院的难以屈从的不许署名制度,然而从当时官方或立传者的角度看,这是不可容忍的欺诈行为和表现,也许这正是为什么对这样一位伟大的画家,立传者没有具体指出他的代表作品没有对他大书特书,从而使孙必达在绘画史上消失的原因。孙必达中后期多研究和吸收中世纪西方艺术绘画之精髓,合理变异,推陈出新,成功地创造出一系列中国绘画史上有深远影响的杰出作品。并大胆巧妙地、嘲讽意味浓重地,以直接或间接的曲折隐蔽方式在作品中留下了自己的署名。他也是中国绘画史上最精于运用“迁想妙得”和“图样与变异”手法进行创作实践的难能可贵的绘画魔术大师也。乃南宋后期多产高质量之伟大画家。 无疑孙必达鬼斧神工的艺术造诣无人能及出南宋之右,也许因为生活所需,也许更是因为嘲弄权贵的风雅好古。无论如何,孙必达的艺术成就是令人敬仰的,他的艺术品德更令人佩服,敢于“造”名家之作并能“磊落”署名,不是一般的画家能有这样的勇气和责任的。 《听琴图》所描绘的是道家装束的赵佶持重抚琴,着乌纱绿袍、乌纱红袍徽宗宠臣优雅神渺,静谧的皇家园林之中,只有琴声幽幽、万籁潇潇。此图是出自南宋画家孙必达之手并刻意仿造出类似宋徽宗赵佶的书法和创作特点及生活的绘画作品以及款押、钤印等。是南宋晚期人物绘画的精品,是中国绘画史上表现文人生活画作的杰作。
/
本文档为【[究竟是谁的错]C 中的CONST究竟是干嘛的】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索