how用法详解

2023-05-29 版权声明 我要投稿

第1篇:how用法详解

how 的用法

How 的本领有多大?

1.how 用在问候语中。如:

How do you do? (你好!)这是初次见面时的问候语,答语也用How do you do?

2.how用来询问身体健康状况,意为"怎么样"。如:

-How is your mother?你妈妈身体怎么样?

-She is very well.她很好。

3. how 用来询问做事的方式或手段,意为"怎样"。如:

-How do you come to school? 你怎样来上学?

-By bike.骑自行车。

4. how 用来询问动作的执行的程度,意为"怎么样"。如:

-How do you like this book?你觉得这本书怎么样?

-Very much. 非常喜欢。

5. How about...?意为"……怎么样?"相当于What about...?,用来询问情况或征求意见。如:How about playing football?踢足球怎么样?

My father is a teacher. What about yours? 我的父亲是位老师,你父亲呢?

6. how old 意为"多大",用来询问年龄。如:

-How old are you?你多大了?

-I’m eleven. 我十一岁。

7. how many/much 意为"多少",用来询问某物的数量。how many 用来对可数名词提问, how much 用来对不可数名词提问。如:

How many pears are there on the table?桌上有多少个梨?

How much bread do you want?你想要多少面包?

8. how much 意为"多少钱",用来询问价格。如:

-How much are these things?这些东西多少钱?

-Ten yuan.十元。

9. how long 意为"多久,多长",既可以用来询问时间有多久,又可以询问某物有多长。如:

(1).-How long does it take you to do your homework every day? 你每天做作业要花多长时间?

-About two hours.大约两个钟头。

(2).-How long is this street? 这条街有多长?

-About two hundred meters.大约两百米。

第2篇:apply用法详解

用法一 apply表示“应用”、“运用”、“适用”等,注意以下用法:

①表示“应用”、“运用”等,通常为及物动词;要表示“将...运用到...”,通常用介词 to: We decided to apply a new method. 我们决定使用新方法。

In this way we can better apply theory to practice. 这样我们就能更好地把理论运用到实践中去。

②表示“适用”,通常为不及物动词;要表示“适用于...”,通常用介词 to(不能用 for): The rule doesn’t apply in all cases. 此规则并非适用于所有的情形。

The book does not apply to beginners. 这书不适合于初学者。

These methods apply to learning English. 这些方法适用于英语学习。

用法二 apply表示“申请”,注意以下用法:

①可用及物或不及物动词,表示“申请得到...”,要用介词 for;表示“申请做某事”,其后接不定式:

You may apply in person or by letter. 你亲自或通过书信申请均可。

More than 30 people applied for the position. 有30多个人申请这个职位。

He applied to stay there. 他申请留在那儿。

比较以下两同义句:

去年他申请入党。

正:Last year he applied to join the Party.

正:Last year he applied for membership in the Party.

②表示“向...申请(得到)...”,通常用 apply to...for...:

He applied to us for help. 他向我们求援。

They applied to the government for financial help. 他们向政府申请经济援助。

用法三 apply用于短语 apply oneself to (专心致力于,专心从事),其中的 to 是介词,其后接名词或动名词:

He applied himself to his work. 他专心工作。

She applied herself to learning English. 她专心学习英语。

有时用apply one’s mind to:

Apply your mind to your work. 专心工作吧。

用法四 apply的派生词

①applicable adj. 适用于:

②applicant n. 申请者(可数):

③application n. 申请(不可数);申请书(可数);使用,应用 ,适用(可数或不可数): This rule is not applicable to foreigners. 这条规则不适用于外国人。

There are three applicants for the job. 有三个人申请这项工作。

Application must be made this afternoon. 申请必须在今天下午提出。

It’s of very wide application. 它的适用范围很广。

We received 60 applications for the job. 对这项工作我们收到60个人的求职申请。

第3篇:typedef struct 用法详解和用法小结

1. 基本解释

typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 2. typedef& 结构的问题

当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜想一下,然后看下文说明: typedefstructtagNode { char *pItem; pNodepNext; } *pNode; 答案与分析:

1、typedef的最简单使用 typedef long byte_4; 给已知数据类型long起个新名字,叫byte_4。

2、 typedef与结构结合使用 typedefstructtagMyStruct { intiNum; long lLength; } MyStruct; 这语句实际上完成两个操作: 1) 定义一个新的结构类型 structtagMyStruct { intiNum; long lLength; }; 分析:tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,struct 关键字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。

我们可以用structtagMyStructvarName来定义变量,但要注意,使用tagMyStructvarName来定义变量是不对的,因为struct 和tagMyStruct合在一起才能表示一个结构类型。

2) typedef为这个新的结构起了一个名字,叫MyStruct。 typedefstructtagMyStructMyStruct; 因此,MyStruct实际上相当于structtagMyStruct,我们可以使用MyStructvarName来定义变量。 答案与分析

C语言当然允许在结构中包含指向它自己的指针,我们可以在建立链表等数据结构的实现上看到无数这样的例子,上述代码的根本问题在于typedef的应用。 根据我们上面的阐述可以知道:新结构建立的过程中遇到了pNext域的声明,类型是pNode,要知道pNode表示的是类型的新名字,那么在类型本身还没有建立完成的时候,这个类型的新名字也还不存在,也就是说这个时候编译器根本不认识pNode。

解决这个问题的方法有多种: 1)、

typedefstructtagNode { char *pItem; structtagNode *pNext; } *pNode; 2)、

typedefstructtagNode *pNode; structtagNode { char *pItem; pNodepNext; }; 注意:在这个例子中,你用typedef给一个还未完全声明的类型起新名字。C语言编译器支持这种做法。 3)、规范做法:

typedef uint32 (* ADM_READDATA_PFUNC)( uint16*, uint32 ); 这个以前没有看到过,个人认为是宇定义一个uint32的指针函数,uint16*, uint32 为函数里的两个参数; 应该相当于#define uint32 (* ADM_READDATA_PFUNC)( uint16*, uint32 ); struct在代码中常见两种形式: struct A { //... }; struct { //... } A; 这其实是两个完全不同的用法:

前者叫做“结构体类型定义”,意思是:定义{}中的结构为一个名称是“A”的结构体。

这种用法在typedef中一般是:

typedefstructtagA //故意给一个不同的名字,作为结构体的实名 { //... } A; //结构体的别名。

后者是结构体变量定义,意思是:以{}中的结构,定义一个名称为"A"的变量。这里的结构体称为匿名结构体,是无法被直接引用的。

也可以通过typedef为匿名结构体创建一个别名,从而使得它可以被引用: typedefstruct { //... } A; //定义匿名结构体的别名为A 第二篇:在C和C++中struct和typedefstruct的区别 在C和C++有三种定义结构的方法。 typedefstruct { int data; int text; } S1; //这种方法可以在c或者c++中定义一个S1结构 struct S2 { int data; int text; }; // 这种定义方式只能在C++中使用,而如果用在C中,那么编译器会报错 struct { int data; int text; } S3; 这种方法并没有定义一个结构,而是定义了一个s3的结构变量,编译器会为s3内存。 void main() { S1 mine1;// OK ,S1 是一个类型 S2 mine2;// OK,S2 是一个类型 S3 mine3;// OK,S3 不是一个类型 S1.data = 5;// ERRORS1 是一个类型 S2.data = 5;// ERRORS2 是一个类型 S3.data = 5;// OKS3是一个变量 } 另外,对与在结构中定义结构本身的变量也有几种写法 struct S6 { S6* ptr; }; // 这种写法只能在C++中使用 typedefstruct { S7* ptr; } S7; // 这是一种在C和C++中都是错误的定义

如果在C中,我们可以使用这样一个“曲线救国的方法“ typedefstruct tagS8{ tagS8 * ptr; } S8;

第三篇:struct和typedefstruct

分三块来讲述: 1 首先:

在C中定义一个结构体类型要用typedef: typedefstruct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1; 如果没有typedef就必须用struct Student stu1;来声明 这里的Stu实际上就是struct Student的别名。

另外这里也可以不写Student(于是也不能struct Student stu1;了) typedefstruct { int a; }Stu; 但在c++里很简单,直接 struct Student { int a; }; 于是就定义了结构体类型Student,声明变量时直接Student stu2; =========================================== 2其次:

在c++中如果用typedef的话,又会造成区别: struct Student { int a; }stu1;//stu1是一个变量 typedefstruct Student2 { int a; }stu2;//stu2是一个结构体类型 使用时可以直接访问stu1.a 但是stu2则必须先 stu2 s2; 然后 s2.a=10; =========================================== 3 掌握上面两条就可以了,不过最后我们探讨个没多大关系的问题 如果在c程序中我们写: typedefstruct { intnum; int age; }aaa,bbb,ccc; 这算什么呢?

我个人观察编译器(VC6)的理解,这相当于 typedefstruct { intnum; int age; }aaa;

typedefaaabbb; typedefaaa ccc; 也就是说aaa,bbb,ccc三者都是结构体类型。声明变量时用任何一个都可以,在c++中也是如此。但是你要注意的是这个在c++中如果写掉了typedef关键字,那么aaa,bbb,ccc将是截然不同的三个对象。 第四篇:C/C++中typedefstruct和struct的用法

struct _x1 { ...}x1; 和 typedefstruct _x2{ ...} x2; 有什么不同? 其实, 前者是定义了类_x1和_x1的对象实例x1, 后者是定义了类_x2和_x2的类别名x2 , 所以它们在使用过程中是有取别的.请看实例1. [知识点] 结构也是一种数据类型, 可以使用结构变量, 因此, 象其它 类型的变量一样, 在使用结构变量时要先对其定义。 定义结构变量的一般格式为: struct 结构名 { 类型 变量名; 类型 变量名; ... } 结构变量; 结构名是结构的标识符不是变量名。 另一种常用格式为: typedefstruct 结构名 { 类型 变量名; 类型 变量名; ... } 结构别名; 另外注意: 在C中,struct不能包含函数。在C++中,对struct进行了扩展,可以包含函数。

======================== 实例1: struct.cpp #include using namespace std; typedefstruct _point{ int x; int y; }point; //定义类,给类一个别名 struct _hello{ intx,y; } hello; //同时定义类和对象 int main() { point pt1; pt1.x = 2; pt1.y = 5; cout<< "ptpt1.x=" << pt1.x << "pt.y=" <

Q: 用struct和typedefstruct 定义一个结构体有什么区别?为什么会有两种方式呢?

struct Student { int a; } stu; typedefstruct Student2 { int a; }stu2; A:

事实上,这个东西是从C语言中遗留过来的,typedef可以定义新的复合类型或给现有类型起一个别名,在C语言中,如果你使用 struct xxx { }; 的方法,使用时就必须用 struct xxx var 来声明变量,而使用 typedefstruct { }的方法 就可以写为 xxx var; 不过在C++中已经没有这回事了,无论你用哪一种写法都可以使用第二种方式声明变量,这个应该算是C语言的糟粕。 用法小结 第

一、四个用途 用途一:

定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:

char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,

// 和一个字符变量; 以下则可行:

typedef char* PCHAR; // 一般用大写

PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 虽然:

char *pa, *pb; 也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式更省事。 用途二:

用在旧的C的代码中(具体多旧没有查),帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名 对象名,如: struct tagPOINT1 { int x; int y; }; struct tagPOINT1 p1; 而在C++中,则可以直接写:结构名 对象名,即: tagPOINT1 p1; 估计某人觉得经常多写一个struct太麻烦了,于是就发明了: typedefstructtagPOINT { int x; int y; }POINT; POINT p1; // 这样就比原来的方式少写了一个struct,比较省事,尤其在大量使用的时候

或许,在C++中,typedef的这种用途二不是很大,但是理解了它,对掌握以前的旧代码还是有帮助的,毕竟我们在项目中有可能会遇到较早些年代遗留下来的代码。 用途三:

用typedef来定义与平台无关的类型。

比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为:

typedef long double REAL; 在不支持 long double 的平台二上,改为: typedef double REAL; 在连 double 都不支持的平台三上,改为: typedef float REAL; 也就是说,当跨平台时,只要改下 typedef 本身就行,不用对其他源码做任何修改。

标准库就广泛使用了这个技巧,比如size_t。 另外,因为typedef是定义了一种类型的新别名,不是简单的字符串替换,所以它比宏来得稳健(虽然用宏有时也可以完成以上的用途)。 用途四:

为复杂的声明定义一个新的简单的别名。方法是:在原来的声明里逐步用别名替换一部分复杂声明,如此循环,把带变量名的部分留到最后替换,得到的就是原声明的最简化版。举例:

1. 原声明:int *(*a[5])(int, char*); 变量名为a,直接用一个新别名pFun替换a就可以了: typedefint *(*pFun)(int, char*); 原声明的最简化版: pFun a[5]; 2. 原声明:void (*b[10]) (void (*)()); 变量名为b,先替换右边部分括号里的,pFunParam为别名一: typedef void (*pFunParam)(); 再替换左边的变量b,pFunx为别名二: typedef void (*pFunx)(pFunParam); 原声明的最简化版: pFunx b[10]; 3. 原声明:doube(*)() (*e)[9]; 变量名为e,先替换左边部分,pFuny为别名一: typedef double(*pFuny)(); 再替换右边的变量e,pFunParamy为别名二 typedefpFuny (*pFunParamy)[9]; 原声明的最简化版: pFunParamy e; 理解复杂声明可用的“右左法则”:

从变量名看起,先往右,再往左,碰到一个圆括号就调转阅读的方向;括号内分析完就跳出括号,还是按先右后左的顺序,如此循环,直到整个声明分析完。举例:

int (*func)(int *p); 首先找到变量名func,外面有一对圆括号,而且左边是一个*号,这说明func是一个指针;然后跳出这个圆括号,先看右边,又遇到圆括号,这说明 (*func)是一个函数,所以func是一个指向这类函数的指针,即函数指针,这类函数具有int*类型的形参,返回值类型是int。 int (*func[5])(int *); func 右边是一个[]运算符,说明func是具有5个元素的数组;func的左边有一个*,说明func的元素是指针(注意这里的*不是修饰func,而是修饰 func[5]的,原因是[]运算符优先级比*高,func先跟[]结合)。跳出这个括号,看右边,又遇到圆括号,说明func数组的元素是函数类型的指针,它指向的函数具有int*类型的形参,返回值类型为int。 也可以记住2个模式: type (*)(....)函数指针 type (*)[]数组指针 第

二、两大陷阱 陷阱一:

记住,typedef是定义了一种类型的新别名,不同于宏,它不是简单的字符串替换。比如: 先定义:

typedef char* PSTR; 然后:

intmystrcmp(const PSTR, const PSTR); const PSTR实际上相当于const char*吗?不是的,它实际上相当于char* const。 原因在于const给予了整个指针本身以常量性,也就是形成了常量指针char* const。

简单来说,记住当const和typedef一起出现时,typedef不会是简单的字符串替换就行。 陷阱二:

typedef在语法上是一个存储类的关键字(如auto、extern、mutable、static、register等一样),虽然它并不真正影响对象的存储特性,如: typedef static int INT2; //不可行

编译将失败,会提示“指定了一个以上的存储类”。

以上资料出自:

http://blog.sina.com.cn/s/blog_4826f7970100074k.html 作者:赤龙 第

三、typedef 与 #define的区别 案例一:

通常讲,typedef要比#define要好,特别是在有指针的场合。请看例子: typedef char *pStr1; #define pStr2 char *; pStr1 s1, s2; pStr2 s3, s4; 在上述的变量定义中,s

1、s

2、s3都被定义为char *,而s4则定义成了char,不是我们所预期的指针变量,根本原因就在于#define只是简单的字符串替换而typedef则是为一个类型起新名字。 案例二:

下面的代码中编译器会报一个错误,你知道是哪个语句错了吗? typedef char * pStr; char string[4] = " abc";="" const="" char="" *p1="string;" constpstr="" p2="string;" p1++;="" p2++;="" 是p2++出错了。这个问题再一次提醒我们:typedef和#define不同,它不是简单的文本替换。上述代码中constpstr="" p2并不等于const="" *="" p2。constpstr="" p2和const="" long="" x本质上没有区别,都是对变量进行只读限制,只不过此处变量p2的数据类型是我们自己定义的而不是系统固有类型而已。因此,constpstr="" p2的含义是:限定数据类型为char="" *的变量p2为只读,因此p2++错误。="" 第四部分资料:使用="" typedef="" 抑制劣质代码=""

摘要: Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。

typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。本文下面将竭尽全力来揭示 typedef 强大功能以及如何避免一些常见的陷阱。 Q:如何创建平台无关的数据类型,隐藏笨拙且难以理解的语法? A: 使用 typedefs 为现有类型创建同义字。

定义易于记忆的类型名

typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于 'typedef' 关键字右边。例如: typedefint size;此声明定义了一个 int 的同义字,名字为 size。注意

typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要 int 的上下文中使用 size:

void measure(size * psz); size array[4];size len = file.getlength();std::vector vs; typedef 还可以掩饰符合类型,如指针和数组。例如,你不用象下面这样重复定义有 81 个字符元素的数组: char line[81];char text[81];定义一个 typedef,每当要用到相同类型和大小的数组时,可以这样:

typedef char Line[81]; Line text, secondline;getline(text);同样,可以象下面这样隐藏指针语法:

typedef char * pstr;intmystrcmp(pstr, pstr);这里将带我们到达第一个 typedef 陷阱。标准函数 strcmp()有两个‘const char *’类型的参数。因此,它可能会误导人们象下面这样声明 mystrcmp():

intmystrcmp(constpstr, constpstr); 这是错误的,按照顺序,‘constpstr’被解释为‘char * const’(一个指向 char 的常量指针),而不是‘const char *’(指向常量 char 的指针)。这个问题很容易解决:

typedefconst char * cpstr; intmystrcmp(cpstr, cpstr); // 现在是正确的记住: 不管什么时候,只要为指针声明 typedef,那么都要在最终的 typedef 名称中加一个 const,以使得该指针本身是常量,而不是对象。

代码简化

上面讨论的 typedef 行为有点像 #define 宏,用其实际类型替代同义字。不同点是 typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。例如:

typedefint (*PF) (const char *, const char *);这个声明引入了 PF 类型作为函数指针的同义字,该函数有两个 const char * 类型的参数以及一个 int 类型的返回值。如果要使用下列形式的函数声明,那么上述这个 typedef 是不可或缺的:

PF Register(PF pf);Register() 的参数是一个 PF 类型的回调函数,返回某个函数的地址,其署名与先前注册的名字相同。做一次深呼吸。下面我展示一下如果不用 typedef,我们是如何实现这个声明的:

int (*Register (int (*pf)(const char *, const char *))) (const char *, const char *); 很少有程序员理解它是什么意思,更不用说这种费解的代码所带来的出错风险了。显然,这里使用 typedef 不是一种特权,而是一种必需。持怀疑态度的人可能会问:“OK,有人还会写这样的代码吗?”,快速浏览一下揭示 signal()函数的头文件 ,一个有同样接口的函数。 typedef 和存储类关键字(storage class specifier)

这种说法是不是有点令人惊讶,typedef 就像 auto,extern,mutable,static,和 register 一样,是一个存储类关键字。这并是说 typedef 会真正影响对象的存储特性;它只是说在语句构成上,typedef 声明看起来象 static,extern 等类型的变量声明。下面将带到第二个陷阱:

typedef register int FAST_COUNTER; // 错误编译通不过。问题出在你不能在声明中有多个存储类关键字。因为符号 typedef 已经占据了存储类关键字的位置,在 typedef 声明中不能用 register(或任何其它存储类关键字)。 促进跨平台开发

typedef 有另外一个重要的用途,那就是定义机器无关的类型,例如,你可以定义一个叫 REAL 的浮点类型,在目标机器上它可以i获得最高的精度: typedef long double REAL; 在不支持 long double 的机器上,该 typedef 看起来会是下面这样:

typedef double REAL; 并且,在连 double 都不支持的机器上,该 typedef 看起来会是这样: 、

typedef float REAL; 你不用对源代码做任何修改,便可以在每一种平台上编译这个使用 REAL 类型的应用程序。唯一要改的是 typedef 本身。在大多数情况下,甚至这个微小的变动完全都可以通过奇妙的条件编译来自动实现。不是吗? 标准库广泛地使用 typedef 来创建这样的平台无关类型:size_t,ptrdiff 和 fpos_t 就是其中的例子。此外,象std::string 和 std::ofstream 这样的 typedef 还隐藏了长长的,难以理解的模板特化语法,例如:basic_string,allocator> 和 basic_ofstream>。

第4篇:中文常用标点符号大全及用法详解 完

中文常用标点符号大全及用法详解 名称 句号 逗号 顿号 分号 冒号 问号 感情号①

引号②括号③省略号④

破折号⑤

连接号⑥

书名号⑦

间隔号着重号 符号 用法说明 举例

。 表示一句话完了之后的停网上城市是由全国3000余座城市构建的城市主题论顿。 坛社区。

, 表示一句话中间的停顿。 全世界各国人民的正义斗争,都是互相支持的。

、 表示句中并列的词或词组能源是发展农业、工业、国防、科学技术和提高人民之间的停顿。 生活的重要物质基础。 ; 表示一句话中并列分句之不批判唯心论,就不能发展唯物论;不批判形而上学,间的停顿。 就不能发展唯物辩证法。

: 用以提示下文。

马克思主义哲学告诉我们:正确的认识来源于社会实

践。

? 用在问句之后。 是谁创造了人类?是我们劳动群众。

1.表示强烈的感情。

! 2.表示感叹句末尾的停战无不胜的马克思主义、列宁主义、毛泽东思想万岁!

顿。

“ ”

毛泽东同志在《论十大关系》一文中说:“我们要调‘ ’ 1.表示引用的部分。 动一切直接的和间接的力量,为把我国建设成为一个╗

强大的社会主义国家而奋斗。”

╚ 2.表示特定的称谓或需要他们当中许多人是身体好、学习好、工作好的“三┐ 着重指出的部分。 好”学生。

└ 3.表示讽刺或否定的意思。

这伙政治骗子恬不知耻地自封为“理论家”。

( ) 表示文中注释的部分。

这篇小说环境描写十分出色,它的描写(无论是野外,

或是室内)处处与故事的发展扣得很紧。

„„ 表示文中省略的部分。

这个县办工厂现在可以生产车床、电机、变压器、水

泵、电线„„上百种产品。 1.表示底下是解释、说明

知识的问题是一个科学问题,来不得半点的虚伪和骄—— 的部分,有括号的作用。

傲,决定地需要的倒是其反面——诚实和谦逊的态

度。 2.表示意思的递进。 团结——批评和自我批评——团结 3.表示意思的转折。 很白很亮的一堆洋钱!而且是他的——现在不见了! 1.表示时间、地点、数目抗日战争时期(1937-1945年) — 等的起止。 “北京—上海”直达快车

2.表示相关的人或事物的联系。

亚洲—太平洋地区

《矛盾论》

《 》 表示书籍、文件、报刊、《中华人民共和国宪法》 〈 〉 文章等的名称。 《人民日报》《红旗》杂志

《学习〈为人民服务〉》

1.表示月份和日期之间的· 分界。

一二·九运动

2.表示某些民族人名中的音界。

诺尔曼·白求恩

. 表示文中需要强调的部学习马克思列宁主义,要按照毛泽东同志倡导的方分。 法,理论联系实际。

第5篇:名词性从句 同位语从句用法详解(例句丰富)

一、同位语从句的引导词

引导同位语从句的词语通常有连词that,whether,连接代词和连接副词等。

1. 由that引导

We heard the news that our team had won. 我们听到消息说我们队赢了。

They were worried over the fact that you were sick. 他们为你生病发愁。

The news that we are having a holiday tomorrow is not true. 明天放假的消息不实。

I’ve come to the conclusion that it was unwise to do that. 我得出结论这样做是不明智的。

The fact that the money has gone does not mean it was stolen. 那笔钱不见了这一事实并不意味着是被偷了。

He referred to Copernicus’ statement that the earth moves round the sun. 他提到了哥白尼关于地球绕太阳转的说法。

【注意1】在某些名词(如demand, wish, suggestion, resolution等)后面的同位语从句要用虚拟语气。如:

They were faced with the demand that this tax be abolished. 他们面对废除这个税的要求。

They expressed the wish that she accept the award. 他们表示希望她接受这笔奖金。

There was a suggestion that Brown should be dropped from the team. 有一项建议是布朗应该离队。

The suggestion that the new rule be adopted came from the chairman. 采纳新规则的建议是主席提出的。 The resolution that women be allowed to join the society was carried. 允许妇女参加这个协会的决议通过了。

I can understand their eagerness that you should be the main speaker. 我理解他们希望你作主要发言人的殷切心情。

【注意2】引导同位语从句的连词that通常不省略,但在非正式文体中也可以省去。如:

He gabbed his suitcase and gave the impression he was boarding the Tokyo plane. 他拿起了手提箱,给人的印象是他要登上飞往东京的飞机了。

2. 由whether引导

There is some doubt whether he will come. 他是否会来还不一定。

Answer my question whether you are coming. 你回答我的问题:你来不来。

The question whether it is right or wrong depends on the result. 这个是对还是错要看结果。

We are not investigating the question whether he is trustworthy. 我们不是在调查他是否可以信任的问题。

【注意】whether 可引导同位语从句,但if不能引导同位语从句。

3. 由连接代词引导

Have you any idea what time it starts? 你知道什么时候开始吗?

From 1985-90 I was an instructor at the regional party headquarters. After that I went back to work in a factory. Then I had no idea what a casino was. 从1985年到1990年我是地方党部的教员。随后我回到一家工厂工作。当时我不知道赌场是什么样的地方。

4. 由连接副词引导

I have no idea when he will come back. 我不知道他什么时候回来。 It is a question how he did it. 那是一个他如何做的问题。

He had no idea why she left. 他不知道她为什么离开。

You have no idea how worried I was! 你不知道我多着急!

二、关于分离同位语从句

有时同位语从句可以和同位的名词分开。如:

The story goes that he beats his wife. 传说他打老婆。

The news got about that he had won a car in the lottery. 消息传开说他中彩得了一辆汽车。

The rumour spread that a new school would be built here. 谣传这里要盖一所新学校。

Report has it that the Smiths are leaving town. 有传言说史密斯一家要离开这座城市。

The thought came to him that maybe the enemy had fled the city. 他想到可能敌人已逃离这座城市。

The order soon came that all citizens should evacuate the village. 不久命令下来,所有居民都必须撤出村子。(G31)

二、同位语从句与定语从句的区别

1.意义的不同

同位语从句是用于说明所修饰名词的具体内容的,它与被修饰词语通常可以划等号;而定语从句是限制所修饰名词的,它的作用是将所修饰的名词与其他类似的东西区别开来:

We are glad at the news that he will come. 听到他要来这个消息我们很高兴。(news的内容就是that he will come,故that引导的是同位语从句)

We are glad at the news that he told us. 听到他告诉我们的这个消息我们很高兴。(that从句是限制the news的内容的,即我们高兴只是因为他告诉的这个news而不是其他的news,故that从句为定语从句) 2. 引导词的不同

what, how, if, whatever 等可引导名词性从句,但不引导定语从句。

3. 引导词的功能上的不同

that引导同位语从句时,它不充当句子成分,而引导定语从句时,它作为关系代词,要么充当定语从句的主语,要么充当定语从句的宾语。如上例 that he told us中的that就充当told的宾语。

4. 被修饰词语的区别

同位语从句所修饰的名词比较有限,通常有hope, wish, idea, news, fact, promise, opinion, suggestion, truth等,而定语从句所修饰的名词则非常广泛。 另外,when和where 引导定语从句时,通常只修饰表示时间和地点的名词,而它们引导同位语从句时却不一定;又如why引导定语从句,它通常只修饰名词the reason,而它引导同位语从句时则不一定:

I have no idea when they will come . 我不知道他们什么时候来。(同位语从句)

I’ll never forget the days when I lived there.. 我永远不会忘记我住在那儿的日子。(定语从句)

We don’t understand the problem why this is the best choice. 我们不明白这个问题,为什么这是最好的选择。(同位语从句 )

The reason why he didn’t come to the meeting is that he is ill. 他未能来开会,原因是他生病了。(定语从句)

上一篇:小学六年级科学导学案下一篇:宿舍评比办法