首页 百科知识 避免提喻法

避免提喻法

时间:2024-09-22 百科知识 版权反馈
【摘要】:提喻法是一种文学手法,有点类似于明喻或暗喻,在牛津英文词典中解释如下:“a more comprehensive term is used for a lesscomprehensive or vice versa; as whole for part or part for whole, genus forspecies or species for genus, etc.”尽管认为p的值是xyz有时是有用的,但这并不是真的,理解这一点非常重要。p的值是指向一个有四个字符的数组中第0个元素的指针,这四个字符是'x'、'y'、'z'和'\0'。因此,如果我们现在执行:

4.6 避免提喻法

    提喻法(Synecdoche,sin-ECK-duh-key)是一种文学手法,有点类似于明喻或暗喻,在牛津英文词典中解释如下:“a more comprehensive term is used for a lesscomprehensive or vice versa; as whole for part or part for whole, genus forspecies or species for genus, etc.(将全面的单位用作不全面的单位,或反之;如整体对局部或局部对整体、一般对特殊或特殊对一般,等等。)”

 

    这可以精确地描述C中通常将指针误以为是其指向的数据的错误。正将常会在字符串中发生。例如:

 

char *p, *q;

p = "xyz";

 

尽管认为p的值是xyz有时是有用的,但这并不是真的,理解这一点非常重要。p的值是指向一个有四个字符的数组中第0个元素的指针,这四个字符是'x''y''z''\0'。因此,如果我们现在执行:

 

q = p;

 

pq会指向同一块内存。内存中的字符没有因为赋值而被复制。这种情况看起来是这样的:

 

 

 

    要记住的是,复制一个指针并不能复制它所指向的东西。

 

    因此,如果之后我们执行:

 

q[1] = 'Y';

 

q所指向的内存包含字符串xYzp也是,因为pq指向相同的内存。

 


免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈