搜档网
当前位置:搜档网 › const的使用方法

const的使用方法

const的使用方法
const的使用方法

const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable)。

我们来分情况看语法上它该如何被使用。

1、函数体内修饰局部变量。

例:

void func(){

const int a=0;

}

首先,我们先把const这个单词忽略不看,那么a是一个int类型的局部自动变量,我们给它赋予初始值0。

然后再看const.

const作为一个类型限定词,和int有相同的地位。

const int a;

int const a;

是等价的。于是此处我们一定要清晰的明白,const修饰的对象是谁,是a,和int没有关系。const 要求他所修饰的对象为常量,不可被改变,不可被赋值,不可作为左值(l-value)。

这样的写法也是错误的。

const int a;

a=0;

这是一个很常见的使用方式:

const double pi=3.14;

在程序的后面如果企图对pi再次赋值或者修改就会出错。

然后看一个稍微复杂的例子。

const int* p;

还是先去掉const 修饰符号。

注意,下面两个是等价的。

int* p;

int *p;

其实我们想要说的是,*p是int类型。那么显然,p就是指向int的指针。

同理

const int* p;

其实等价于

const int (*p);

int const (*p);

即,*p是常量。也就是说,p指向的数据是常量。

于是

p+=8; //合法

*p=3; //非法,p指向的数据是常量。

那么如何声明一个自身是常量指针呢?方法是让const尽可能的靠近p;

int* const p;

const右面只有p,显然,它修饰的是p,说明p不可被更改。然后把const去掉,可以看出p是一个指向int形式变量的指针。

于是

p+=8; //非法

*p=3; //合法

再看一个更复杂的例子,它是上面二者的综合

const int* const p;

说明p自己是常量,且p指向的变量也是常量。

于是

p+=8; //非法

*p=3; //非法

const 还有一个作用就是用于修饰常量静态字符串。

例如:

const char* name="David";

如果没有const,我们可能会在后面有意无意的写name[4]='x'这样的语句,这样会导致对只读内存区域的赋值,然后程序会立刻异常终止。有了const,这个错误就

能在程序被编译的时候就立即检查出来,这就是const的好处。让逻辑错误在编译

期被发现。

const 还可以用来修饰数组

const char s[]="David";

与上面有类似的作用。

2、在函数声明时修饰参数

来看实际中的一个例子。

NAME

memmove -- copy byte string

LIBRARY

Standard C Library (libc, -lc)

SYNOPSIS

#include

void *

memmove(void *dst, const void *src, size_t len);

这是标准库中的一个函数,用于按字节方式复制字符串(内存)。

它的第一个参数,是将字符串复制到哪里去(dest),是目的地,这段内存区域必须

是可写。

它的第二个参数,是要将什么样的字符串复制出去,我们对这段内存区域只做读

取,不写。

于是,我们站在这个函数自己的角度来看,src 这个指针,它所指向的内存内所存

储的数据在整个函数执行的过程中是不变。于是src所指向的内容是常量。于是就

需要用const修饰。

例如,我们这里这样使用它。

const char* s="hello";

char buf[100];

memmove(buf,s,6); //这里其实应该用strcpy或memcpy更好

如果我们反过来写,

memmove(s,buf,6);

那么编译器一定会报错。事实是我们经常会把各种函数的参数顺序写反。事实是编

译器在此时帮了我们大忙。如果编译器静悄悄的不报错,(在函数声明处去掉

const即可),那么这个程序在运行的时候一定会崩溃。

这里还要说明的一点是在函数参数声明中const一般用来声明指针而不是变量本身。例如,上面的size_t len,在函数实现的时候可以完全不用更改len的值,那么是否应该把len也声明为常量呢?可以,可以这么做。我们来分析这么做有什么优劣。

如果加了const,那么对于这个函数的实现者,可以防止他在实现这个函数的时候修改不需要修改的值(len),这样很好。

但是对于这个函数的使用者,

1。这个修饰符号毫无意义,我们可以传递一个常量整数或者一个非常量整数过

去,反正对方获得的只是我们传递的一个copy。

2。暴露了实现。我不需要知道你在实现这个函数的时候是否修改过len的值。

所以,const一般只用来修饰指针。

再看一个复杂的例子

int execv(const char *path, char *const argv[]);

着重看后面这个,argv.它代表什么。

如果去掉const,我们可以看出

char * argv[];

argv是一个数组,它的每个元素都是char *类型的指针。

如果加上const.那么const修饰的是谁呢?他修饰的是一个数组,argv[],意思就是说这个数组的元素是只读的。那么数组的元素的是什么类型呢?是char *类型的指针.也就是说指针是常量,而它指向的数据不是。

于是

argv[1]=NULL; //非法

argv[0][0]='a'; //合法

3、全局变量。

我们的原则依然是,尽可能少的使用全局变量。

我们的第二条规则则是,尽可能多的使用const。

如果一个全局变量只在本文件中使用,那么用法和前面所说的函数局部变量没有什么区别。

如果它要在多个文件间共享,那么就牵扯到一个存储类型的问题。

有两种方式。

1.使用extern

例如

/* file1.h */

extern const double pi;

/* file1.c */

const double pi=3.14;

然后其他需要使用pi这个变量的,包含file1.h

#include "file1.h"

或者,自己把那句声明复制一遍就好。

这样做的结果是,整个程序链接完后,所有需要使用pi这个变量的共享一个存储区域。

2.使用static,静态外部存储类

/* constant.h */

static const pi=3.14;

需要使用这个变量的*.c文件中,必须包含这个头文件。

前面的static一定不能少。否则链接的时候会报告说该变量被多次定义。

这样做的结果是,每个包含了constant.h的*.c文件,都有一份该变量自己的copy, 该变量实际上还是被定义了多次,占用了多个存储空间,不过在加了static关键字

后,解决了文件间重定义的冲突。

坏处是浪费了存储空间,导致链接完后的可执行文件变大。但是通常,这个,小小

几字节的变化,不是问题。

好处是,你不用关心这个变量是在哪个文件中被初始化的。

最后,说说const的作用。

const 的好处,是引入了常量的概念,让我们不要去修改不该修改的内存。直接的

作用就是让更多的逻辑错误在编译期被发现。所以我们要尽可能的多使用const。

但是很多人并不习惯使用它,更有甚者,是在整个程序编写/调试完后才补const。如果是给函数的声明补const,尚好。如果是给全局/局部变量补const,那么……那么,为时已晚,无非是让代码看起来更漂亮了。

常见标点符号的用法归纳

常见标点符号的用法归纳 一、常见的标点符号 标点符号是辅助文字记录语言的符号,是书面语的有机组成部分,用来表示停顿、语气以及词语的性质和作用。常见的标点符号有16种,分为点号和标号两大类。 1、点号 点号的作用在于点断,主要表示说话时的停顿和语气。点号又分为句内点号和句外点号。句内点号用在句内,表示句内各种不同性质的停顿,有顿号(、)、逗号(,)、分号(;)、冒号(:)4种;句末点号用在句末,表示句末的停顿,有句号(。)、问号(?)、叹号(!)3种。 各种点号的停顿时间的长短排列如下:、﹤,﹤:;﹤。?! 2、标号 标号的作用在于标明,主要标明语句的性质和作用。常见的标号有9种,即:引号(“”)、括号(())、破折号(——)、省略号(……)、着重号(.)、连接号(—)、间隔号(.)、书名号(《》)和专名号(____) 二、常见标点符号的用法归纳 1、顿号(句子内部并列词语或短语的停顿) 1) 数字并列表省略时用顿号,表概数时不用顿号。 如:三年级二、三班的同学今天下午劳动两三节课。 (表省略)(表概数) 2)停顿较短的并列成分(如:锅碗瓢盆交响曲)或集合词语(如:工农兵中小学生公安干警)之间不用顿号。 3)并列词语之间带有“啊”“哇”“啦”“呀”等语气助词时不用顿号,改用逗号。 如:妈妈经常给我讲她纺线啊,织布啊,做军鞋啊。 4)并列的分句做句子的成分时,使用顿号;各自独立成句时则使用逗号。 如:难道说工期紧、任务重、难度大,就可以不顾工程的质量而随意改变设计方案吗?(作句子的成分) 今年春季,这个省……改道工程,任务重,工程难,规模大。 (各自独立成句) 5)如果大的并列成分里包含着小的并列成分时,那么大并列用逗号,小并列用顿号。 如:克隆羊、克隆牛的诞生,“神舟的五号的发射、回收,标示着我国科学发展的新水平。 小并列大并列小并列 2、逗号(略) 3、分号(复句内部并列分句的停顿) 1)复句内并列分句的停顿使用分号。 如:如实地反映客观事物,反映正确就是客观的;反之,就是不科学的。(前后正反对照,构成并列,当使用分号)

const int

const int* a = &b 和const* int a = &b的区别收藏 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500; const int* a = &b; [1] int const *a = &b; [2] int* const a = &b; [3] const int* const a = &b; [4] 如果你能区分出上述四种情况,那么,恭喜你,你已经迈出了可喜的一步。不知道,也没关系,我们可以参考《Effective c++》Item21上的做法,如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。因此,[1]和[2]的情况相同,都是指针所指向的内容为常量(const放在变量声明符的位置无关),这种情况下不允许对内容进行更改操作,如不能*a = 3 ;[3]为指针本身是常量,而指针所指向的内容不是常量,这种情况下不能对指针本身进行更改操作,如a++是错误的;[4]为指针本身和指向的内容均为常量。另外const 的一些强大的功能在于它在函数声明中的应用。在一个函数声明中,const 可以修饰函数的返回值,或某个参数;对于成员函数,还可以修饰是整个函数。有如下几种情况,以下会逐渐的说明用法: A& operator=(const A& a); void fun0(const A* a ); void fun1( ) const; // fun1( ) 为类成员函数 const A fun2( ); --------------------------------------------------------------------------------------------------------------------------------------------- const int * pi 、int const * pi与int * const pi及其操作 (本贴已经做了重大修改) 1 从const int i 说起

关键字Const与Volatile的使用

关键字const有什么含意? 我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着“只读”就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。) 如果应试者能正确回答这个问题,我将问他一个附加的问题: 下面的声明都是什么意思? const int a; int const a; const int *a; int * const a; int const * a const; /******/ 前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。顺带提一句,也许你可能会问,即使不用关键字const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?我也如下的几下理由: ?; 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。) ?; 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。 ?; 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。 Volatile 8. 关键字volatile有什么含意?并给出三个不同的例子。 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: ?; 并行设备的硬件寄存器(如:状态寄存器) ?; 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) ?; 多线程应用中被几个任务共享的变量 回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。搞嵌入式的家伙们经常同硬件、中断、RTOS等等打交道,所有这些都要求用到volatile变量。不懂得volatile的内容将会带来灾难。 假设被面试者正确地回答了这是问题(嗯,怀疑是否会是这样),我将稍微深究一下,看一下这家伙是不是直正懂得volatile 完全的重要性。 ?; 一个参数既可以是const还可以是volatile吗?解释为什么。 ?; 一个指针可以是volatile 吗?解释为什么。

倒装用法归纳(部分-全部)

Unit5 Grammar Inversion(倒装) 英语部分倒装用法归纳(Partial Inversion) 1. 否定副词位于句首时的倒装 在正式文体中,never, seldom, rarely, little, hardly, scarcely, no sooner, no longer, nowhere 等含有否定意义的副词若位于句首,则其后要用部分倒装: I shall never forgive him. / Never shall I forgive him. 我永远不会宽恕他。 He seldom goes out for dinner. / Seldom does he go out for dinner. 他很少出去吃饭。 She hardly has time to listen to music. / Hardly does she have time to listen to music. 她几乎没时间听音乐。 He little realizes how important this meeting is. / Little does he realize how important this meeting is. 他不甚明白这个会议的重要性。 We had no sooner reached the airport than the plane took off. / No sooner had we reached the airport than the plane took off. 我们刚到机场,飞机就起飞了。 【注意】 (1)对于not…until句型,当not until…位于句首时,其后的主句要用倒装语序: He didn’t leave the r oom until the rain stopped. / Not until the rain stopped did he leave the room. 雨停了之后他才离开这房间。 (2)某些起副词作用的介词短语,由于含有否定词,若位于句首,其后要用部分倒装: On no accounts must this switch be touched. 这个开关是绝不能触摸的。 In [Under] no circumstances will I lend money to him.无论如何我也不会再借钱给他了。 但是,in no time(立即,马上)位于句首时,其后无需用倒装语序: In no time he worked out the problem. 他马上就算出了那道题。 2.“only+状语”位于句首时的倒装 当一个状语受副词only的修饰且置于句首时,其后用部分倒装语序: Only then did he realize that he was wrong. 到那时他才意识到他错了。 Only in this way are you able to do it well. 你只有用这种方法才能把它做好。 Only when he returned home did he realize what had happened. 当他回到家里时,才知道出了什么事。 3. “so+adj. / adv.”位于句首时的倒装 副词so后接形容词或副词位于句首时,其后用部分倒装: So cold was the weather that we had to stay at home. 天气太冷,我们只好呆在家里。 So fast does light travel that we can hardly imagine its speed. 光速很快,我们几乎没法想像它的速度。 So sudden was the attack that we had no time to escape. 袭击来得非常突然,我们来不及逃跑。 4.“so+助动词+主语”倒装 当要表示前面提出的某一肯定的情况也同样适合于后者,通常就要用“So+助动词+主语”这种倒装结构: You are young and so am I. 你年轻,我也年轻。 She likes music and so do I. 她喜欢音乐,我也喜欢。

const,static,extern用法总结

--------------------------CONST--------------------------------------- const应用: 一、对于基本声明 const int r=100;//标准const变量声明加初始化,编译器经过类型检查后直接用100在编译时替换。 二、对于指针 1. int x=10; const int *r=&x; //指针指向的内容是常量,r指向的内容不能够通过r改变,但如果是非const,内容可以通过自己改变,而且r指针可以改变,可以指向其它的整形. //*r=*r+1;NO //x++;YES //r=&y;YES 2. int const *r=&x; 与1完全相同 3. int * const r=&x; //指针指向是常量,不能修改去指向其它内容,但指向的内容可以修改 //r=&y;NO //*r=*r+1;YES //x++;YES 4.const int * const r=&x; //综合1、3用法,r是一个指向常量的常量型指针,指针指向不能改变,指针内容不能改变,内容可以自身改变 //r=&y;NO //*r=*r+1;NO //x++;YES 三、对于类型检查 可以把非const对象赋予const指针,这样就不能改变.但是不能把const赋给非const,除非先强制转换 const int x=100; int *p=(int*)&x; *p++; 四、对于函数 1.void Fuction1(const int r); //此处为参数传递const值,意义是变量初值不能被函数改变 2.const int Fuction1 (int); //此处返回const值,意思指返回的原函数里的变量的初值不能被修改,但是函数按值返回的这个变量被制成副本,能不能被修改就没有了意义,它可以被赋给任何的const或非const类型变量,完全不需要加上这个const关键字。 3.Class CX; //内部有构造函数,声明如CX(int r =0) CX Fuction1 () { return CX(); } const CX Fuction2 () { return CX(); } Fuction1() = CX(1); //没有问题,可以作为左值调用 Fuction2() = CX(1); //编译错误,const返回值禁止作为左值调用。 4.函数中指针的const传递和返回: int F1 (const char *pstr); //作为传递的时候使用const修饰可以保证不会通过这个指针来修改传递参数的初值 const char *F2();//意义是函数返回的指针指向的对象是一个const对象,它必须赋给一个同样是指向const对象的指针 const char * const F3(); //比上面多了一个const,这个const的意义只是在他被用作左值时有效,它表明了这个指针除了指向const对象外,它本身也不能被修改,所以就不能当作左值来处理。 五、对于类 1.首先,对于const的成员变量,只能在构造函数里使用初始化成员列表来初始化,试图在构造函数体内进行初始化const成员变量会引起编译错误。初始化成员列表形如:X:: X ( int ir ): r(ir) {} //假设r是类X的const成员变量 注意:类的构造和析构函数都不能是const函数。 2.建立了一个const成员函数,但仍然想用这个函数改变对象内部的数据。(函数不能修改类的数据成员)

IF的用法

IF的用法 if是英语中出现频率很高的连词,并且它的用法也很多。学生感到很难掌握,为了让同学们更多更好地了解其用法及其语法功能。现结合教学中遇到的情况,予以归纳,以供参考。 一、if作为连词,引导条件状语从句,它表示的意思是“假如”“如果”等。在复合句中如果主句用将 来时,则if引导的状语从句用一般现在时。例如: 1. If itdoesn’train, we will go to the park next Sunday. 如果天不下雨,下周星期天我们将去公园。 2. If you ask him,he will help you.如果你求他,他将会帮助你。 二、if还可以引导让步状语从句。这时if当作“即使是”,“虽说”解。例如: 1. If she’s poor,at least she’s honest.虽说她很穷,但至少她还是诚实的。 2. If I am wrong,you are wrong,too.即使说我错了,那么你也不对。 3. I’ll do it, even if it takes me all the afternoon.虽然会花费我一下午的时间,我还是要做这事。 三、if作为连词还可以引导宾语从句。引导宾语从句时和whether意思相同。例如: 1. Lily asked if /whether she liked it. 莉莉问她是否喜欢它。 2. She asked if /whether they had a cotton one.她问是否他们有一件棉织的。 四、if引导时间状语从句,当if做“当”或“无论何时”解而不含有条件之义时,if从句中的时态与主句中的时态相同。例如: 1. If youmix yellow and blue,you get green.你将黄色与蓝色混合,便会得到绿色。 2. If she wants the servant,she rings the bell.每当她需要仆人时,她便按铃。 五、if后接否定动词,用于感叹句中,表示沮丧、惊奇等。例如: I. Well,if I haven’t left my false teeth at home!真倒霉,我把假牙丢在家里了! 2. And if he didn’t try to kn ock me down!(What do you think he did!He tried knock me down!)你猜他想做什么?他想把我撞倒! 六、用于虚拟语气中,if从句中用过去式,表示不可能实现,大概不会实现或提出作为考虑的假定条件。例如: 1. If you were a bird, you could fly.假使你是只鸟,你便会飞了。 2. If I asked him(if I were to ask him) for a loan,would he agree?如果我向他借贷,他会答应吗? 另外,if从句中用过去完成式,表示过去未实现的条件(例如由于不可能实现或某人之未能实行)。例如: 1. If they had startedearlier,they would have arrivedin time.要是他们早些动身,他们便可及时到达了。 2. If they had not started when they did,they would not be here now.如果他们那时不动身,现在他们就不会在此地了。 第三,在文学体栽中,if有时可省略,然后将主语与所用的限定动词(尤其是were,had,should)倒置。例如: 1. Should it (=if it should)be necessary,I will go. 倘若有必要,我会去的。 2. Were I(=if I were) in your place,I would do the same .如果我处于你的位置,我也会这样干的。 3. Had I(=if I had)known earlier,I would come.如果我早一点知道,我就会来。 七、if与其它一些介词的连用。

C++中const用法详解

const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。类型声明中const用来修饰一个常量,有如下两种写法,那么,请问,下面分别用const限定不可变的内容是什么? 1)、const在前面 const int nValue;//nValue是const const char *pContent; //*pContent是const, pContent可变 const (char *) pContent;//pContent是const,*pContent可变 char* const pContent; //pContent是const,*pContent可变 const char* const pContent; //pContent和*pContent都是const 2)、const在后面,与上面的声明对等 int const nValue;// nValue是const char const * pContent;// *pContent是const, pContent可变 (char *) const pContent;//pContent是const,*pContent可变 char* const pContent;// pContent是const,*pContent可变 char const* const pContent;// pContent和*pContent都是const 答案与分析: const和指针一起使用是C语言中一个很常见的困惑之处,在实际开发中,特别是在看别人代码的时候,常常会因为这样而不好判断作者的意图,下面讲一下我的判断原则:当const所在代码段中不包含括号时,沿着*号划一条线,如果const 位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。你可以根据这个规则来看上面声明的实际意义,相信定会一目了然。

标点符号要点归纳及用法

标点符号 知识要点: 标点符号是书面语言的有机组成部分,是书面语言不可缺少的辅助工具。标点符号的主要作用有三点:1.表示停顿;2.表示语气;3.表示词语的性质和作用。现在通行的标点符号有l6种,分为点号和标号两大类。点号包括:顿号(、)、逗号(,)、分号(;)、句号(。)、问号(?)、叹号(!)和冒号(:)。而标号则包括:破折号(——)、括号(( ))、省略号(……)、书名号(《》)、引号(“”)等。 答题注意: 1、标点符号是书面语里用来表示停顿、语调以及词语性质和作用的符号。虽然它只是一个小符号,作用却非常大,一定要认真读题,什么样的语气就相应地用什么样的标点符号。 2、给一段话加标点,难度较大,首先要认真地读这一段话看一看一共有几句话.每句话是什么意思,使用的是怎样的语气,然后再动手加标点符号,最后再读一读,检查标点符号使用得是否恰当、正确。 方法指津: 小学5~6年级与初中阶段要求掌握的常用标点符号大体一致,只是题型有变化,难度有所提高。在解题时要注意以下几个方面: 1.建立标点符号用法表,熟悉掌握常用标点符号的用法。无论是主观题,还是客观题,熟悉并掌握常用标点符号的用法,是准确解答标点符号题的基础。 2.熟记各种标点符号的位置,规范使用标点符号。如:标点符号由点号与标号组成,点号分为句中点号和句末点号。其中句中点号由顿号、分号、逗号组成,这三种点号均表示一个句子内部的停顿。顿号表示词语之问的停顿,一般应是两个或以上的词语之间,停顿时间最短;逗号表示一个句子内的一般性停顿,可以是词语、短语或句子内部的分句,停顿时问稍长;分号则用于复句内部并列的分句之间或排比句中并列的分句之间,停顿的时间比逗号更长。运用时,应先用停顿短的逗号,再用停顿长的分号,不能乱了秩序,只有在分行列举的各项之间,才能直接用分号。又如:七种点号都占一个字的位置,通常点在紧靠文字右边偏下,不能用在一行之首,引号、括号、书名号都标在文字前后,各占一个字位置。破折号和省略号占两个字的位置,都标在正中。连接号占一个字的位置,着重号标在字的下面,间隔号写在格子正中。知晓了这些内容,才能规范使用标点符号,为识破标点使用的正误打下基础。 3.总结、积累标点符号使用的特点、规律,以简驭繁。事物总是有规律的,标点符号也不例外。如冒号的使用就有以下规律:一是冒号不能连用,在同一句子中,冒号一般只用一个,否则便会面目不清,必须将其中一个改为逗号;二是冒号后面揭示范围不清楚。特别是冒号与引号连用时,一定要分清冒号提示的范围,如果提示的是全部,句末的句号应在引号之外;如果提示的仅引号内的部分,那么或将冒号改为逗号,或将逗号改为引号内句号。 4.对易错标点要反复训练,定期复习巩固。有些标点在使用中常常被误用,如顿号、分号、逗号的误用,冒号的误用,句号、叹号、问号的误用等。还有不同标点间的连用、套用容易出错,比如引号的使用.因为引语与“某某说”之间位置不同,标点符号也就不同。“说”在前,“引语”在后,“说”后用冒号;“说”在“引语”中间,“说”后用逗号;“说”在“引语”之后,“说”后用句号。如果区分不明,则易导致标号误用。因此,我们在平时的学习实践中一定要反复训练,不断强化巩固。

英语中if的用法

精心整理1.(表示条件)如果,主句用将来时,if从句用现在时表示将来Hewillcomeifyouinvitehim. 如果你请他,他会来的。 2.(表示虚拟)假如,要是 1 a. b. 句型:条件从句主句 过去完成时should(would)have+过去分词 Ifshehadworkedharder,shewouldhavesucceeded. Thericewouldnothavebeenburntifyouhadbeenmorecareful.

IfmylawyerhadbeenherelastSaturday,hewouldhavepreventedmefromgoing. Ifhehadcomeyesterday,Ishould/wouldhavetoldhimaboutit. 含义:Hedidnotcomeyesterday,soIdidnottellhimaboutit. c. were+ Ifyousucceeded,everythingwouldbeallright. Ifyoushouldsucceed,everythingwouldbeallright. Ifyouweretosucceed,everythingwouldbeallright.

3.是否=whether连接宾语从句 Iwonderifsheisill. 不知她是否病了。 连接词conj. 1.( 2.( 3.( 4.是否 不知她是否病了。 5.(表示因果关系)每一次...的时候(总是会) IfIfeelanydoubt,Iinquire. 我一感到有疑问就随时询问。 if作为连词的时候,一般用于条件状语从句或者是宾语从句或让步状语从句

what用法总结

what用法总结 温馨提示:what用法很多,对专升本有用的我已经用红色字体显示,由于部分同学考研可能要用到,把几乎所有用法都附上了。 what的用法是各种类型英语科测试的热点,what的用法灵活多变,出题花样翻新,只有对其有一个全面的掌握,才能灵活运用。本文以2006年的两道高考题为例,总结what的用法,希望能让同学们对它有一个全面的了解。 The shopkeeper did not want to sell for _____ he thought was not enough.(2006山东卷第26题) A. where B. how C. what D. which 答案:C Great changes have taken place in that school. It is no longer _____ it was 20 years ago, _____ it was so poorly equipped.(2006安徽卷第32题) A. what; when B. that; which C. what; which D. which; that 答案:A. 上述两题中的what都是关系代词,一般含义是“the thing that”。第一题中what 的意思是“the price that”,引导宾语从句;第二题中what的意思是“the school that”,引导的是表语从句。what的其他结构还有:

一、what + little 在此结构中,little是名词,强调某种东西“虽少但已是全部”,至于被强调的是什么,只能凭借上下文来判断。 例如:(1)What little he said on the subject was full of wisdom. (2)She saved what little of the money she could out of her slim salary to help her brother go to school 二、what little + 名词 此结构为上一结构的延伸,所不同的是,little在这里不是名词,而是形容词了。 例如:(1)He gave me what little money he had about him. (2)My father spent what little spare time he had in writing. 三、what + few + 名词 当被修饰的名词为可数名词时,little应换成few,含义为“仅有的几个”。 例如:(1)What few friends I have are very kind to me. (2)I will lend you what few books I can spare.

if用法归纳

1. If you eat my food, I won’t talk to you. (P58) 2. I will die , I don’t have food, (P58) 3. What shall we do if it rains tomorrow? 5. She asked me if I was fond of music. 她问我是否喜欢音乐。 6. Can you tell me if they’re planning to come? 你能告诉我他们是否打算过来吗? 7. I don’t know if she’s coming. 我不知道她是否会来。 ◇相关词组 ☆if you want/like如果你愿意的话 You can come and stay with us if you want. ☆if so如果是的话 Are you planning to return to work, and if so, who is going to look after the baby? ☆if not如果不是的话 Has anyone dealt with the technical problems? And if not, why not?☆if necessary/if possible 如果必要/可能的话 We are ready to fight for our rights if necessary. I should like to be back here by 10:30 if possible. ☆even if即使 I’d rather never sell this painting, even if they offered me a million dollars. ☆what if 要是……,那怎么办?如果……那会怎样? What if the boss walked in here now and saw us? ☆as if好像是…… She always talks to me as if she was my sister. ◇相关练习 动词填空: 1. If it ______ (be) sunny tomorrow, I ______( walk) to school . 2. We ________ (not have ) our sports meeting if the

const变量使用总结

或许还有不少人对于const修饰符理解的并不深刻,都只是停留在一个比较浅的层面上,仅仅是在读别人代码的时候看到了const修饰符的使用,自己的写代码的过中从未使用过,所以自然对于const修饰符比较陌生。那么到底什么是const 修饰符,我们在自己编写C语言代码的过程中又该如何有效的使用const修饰符呢,现在让我们来学习下const修饰符的使用。 const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,即就是说其所修饰的对象为常量。当你代码中想要设法阻止一个变量被改变,那么这个时候可以选择使用const关键字。在你给一个变量加上const修饰符的同时,通常需要对它进行初始化,在之后的程序中就不能再去改变它。 可能有的人会有一个疑问,我们不是有在C中有预处理指令#define VariableNameVariableValue可以很方便地进行值替代,干嘛还要引入const修饰符呢?!这是因为预处理语句虽然可以很方便的进行值得替代,但它有个比较致命的缺点,即预处理语句仅仅只是简单值替代,缺乏类型的检测机制。这样预处理语句就不能享受C编译器严格类型检查的好处,正是由于这样,使得它的使用存在着一系列的隐患和局限性。 在讲解const修饰符之前,我们在此首先给出const修饰符的几个典型作用: 1. const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令 2. 可以保护被修饰的东西,防止意外的修改,增强程序的健壮性; 3. 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。 4. 可以节省空间,避免不必要的内存分配。 接下来看看具体的使用。 一、const修饰符在函数体内修饰局部变量。 constint n=5; 和 intconst n=5;

partly的用法总结大全

partly的用法总结大全 partly的意思是什么呢?partly的用法是怎样的呢,今天给大家带来了parcel的用法,希望能够帮助到大家,一起来学习吧。 partly的意思 adv. 在一定程度上,部分地,不完全地,半 partly用法 partly可以用作副词 partly用作副词指“部分地,不完全地”,修饰形容词常置于其前。常用于partly...partly...结构。 partly无比较级和最高级形式。 partly用作副词的用法例句 You have introduced a partly random component.你介绍了一个在一定程度上属于偶然的成分。 The transformation is partly due to demographics.这一变化一定程度上是源于人口的变化。 Their energy is partly dissipated.它们的能量被部分地消耗掉。

partly双语例句 1.This is partly a political and partly a legal question.这个问题部分是政治问题, 部分是法律问题。 2.Farming is partly subsidised by the government.农业得到政府的部分资助。 3.Their company sell partly to foreign markets.他们公司部分向国外市场销售。 4.Leaves scale-like, distichous, equitant, sometimes linear or partly linear.叶鳞片状,2列,套折,有时线形的或部分线形。 5.The delay is partly explicable by the road works.延误的部份原因是道路施工。 6.I believe what he has said is partly true.我相信他刚才说的话一部分是真实的。 7.The sale of ice cream is partly determined by the weather.冰淇淋的销量部分取决于天气。 8.Maturate partly in French oak barrique and partly in Slovenian oak casks for about 12-15 months.之后,一部分在法国橡木桶里醇化,一部分在斯洛文尼亚橡木桶里醇化,大致需要12-15个月。

if、 whether 用法总结

whether,if if和whether通用,都表示“是否”的意思。一般来说,后者比较正式,在口语中前者常用来代替后者。但两者有时具有不同的暗示。用whether时,正反两面的选择意义较强,问话人并不在意回答是肯定还是否定;而用if时,则比较强调单方面,即正面,问话人希望得到肯定的回答。另外,还要注意以下几点: 一、whether和if都可以与or not连用;但写在一起时,只能用whether,不能用if。如: I don't care whether (或if) it will rain or not. I don't care whether or not it will rain. (不用if) 二、在引导宾语从句时,应注意: 1、表示“是否”时,两词都能引导宾语从句。 I wonder if/whether you can examine him now. 2、宾语从句移置句首时,用whether,不用if。

Whether it is true or not,I can't say. 3、宾语从句为否定形式时,通常用if,而不用whether。 I asked Tom if Mary wouldn’t come. 4、作discuss等词的宾语,用whether不用if。 We discussed whether we should buy the gift for him. 三、在下列情况下,只能用whether,不能用if。 1、与不定式连用时,只能用whether. He can't decide whether to accept or refuse. 2、在介词后,只能用whether。 Everything depends on whether he is ready. 3、在名词后作同位语时,只能用whether。

C++ const 精髓

1.const的用法: 看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。 1.用const 修饰函数的参数 如果参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const 修饰,否则该参数将失去输出功能。const 只能修饰输入参数: 如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针,起到保护作用。 例如StringCopy 函数: void StringCopy(char *strDestination, const char *strSource); 其中strSource 是输入参数,strDestination 是输出参数。给strSource 加上const修饰后,如果函数体内的语句试图改动strSource 的内容,编译器将指出错误。 如果输入参数采用“值传递”,由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const 修饰。 例如不要将函数void Func1(int x) 写成void Func1(const int x)。 同理不要将函数void Func2(A a) 写成void Func2(const A a)。其中A 为用户自定义的数据类型。 对于非内部数据类型的参数而言,象void Func(A a) 这样声明的函数注定效率比较底。因为函数体内将产生A 类型的临时对象用于复制参数a,而临时对象的构造、复制、析构过程都将消耗时间。 为了提高效率,可以将函数声明改为void Func(A &a),因为“引用传递”仅借用一下参数的别名而已,不需要产生临时对象。但是函数void Func(A & a) 存在一个缺点: “引用传递”有可能改变参数a,这是我们不期望的。解决这个问题很容易,加const修饰即可,因此函数最终成为void Func(const A &a)。 以此类推,是否应将void Func(int x) 改写为void Func(const int &x),以便提高效率?完全没有必要,因为内部数据类型的参数不存在构造、析构的过程,而复制也非常快,“值传递”和“引用传递”的效率几乎相当。 问题是如此的缠绵,我只好将“const &”修饰输入参数的用法总结一下。 对于非内部数据类型的输入参数,应该将“值传递”的方式改为“const 引用传递”,目的是提高效率。例如将void Func(A a) 改为void Func(const A &a)。 对于内部数据类型的输入参数,不要将“值传递”的方式改为“const 引用传递”。否则既达不到提高效率的目的,又降低了函数的可理解性。例如void Func(int x) 不应该改为void Func(const int &x)。

详细版if的用法.doc

一、if作为连词,引导条件状语从句,它表示的意思是“假如”“如果”等。在复合句中如果主句用将来时,则if引导的状语从句用一般现在时。例如: 1. If itdoesn’train, we will go to the park next Sunday. 如果天不下雨,下周星期天我们将去公园。 2. If you ask him,he will help you.如果你求他,他将会帮助你。 二、if还可以引导让步状语从句。这时if当作“即使是”,“虽说”解。例如: 1. If she’s p oor,at least she’s honest.虽说她很穷,但至少她还是诚实的。 2. If I am wrong,you are wrong,too.即使说我错了,那么你也不对。 3. I’ll do it, even if it takes me all the afternoon.虽然会花费我一下午的时间,我还是要做这事。 三、if作为连词还可以引导宾语从句。引导宾语从句时和whether意思相同。例如: 1. Lily asked if /whether she liked it. 莉莉问她是否喜欢它。 2. She asked if /whether they had a cotton one.她问是否他们有一件棉织的。 四、if引导时间状语从句,当if做“当”或“无论何时”解而不含有条件之义时,if从句中的时态与主句中的时态相同。例如: 1. If youmix yellow and blue,you get green.你将黄色与蓝色混合,便会得到绿色。 2. If she wants the servant,she rings the bell.每当她需要仆人时,她便按铃。 五、if后接否定动词,用于感叹句中,表示沮丧、惊奇等。例如: I. Well,if I haven’t left my false teeth at home!真倒霉,我把假牙丢在家里了! 2. And if he didn’t try to knock me down!(What do you think he did!He tried knock me down!) 六、用于虚拟语气中,if从句中用过去式,表示不可能实现,大概不会实现或提出作为考虑的假定条件。例如: 1. If you were a bird, you could fly.假使你是只鸟,你便会飞了。 2. If I asked him(if I were to ask him) for a loan,would he agree?如果我向他借贷,他会答应吗? 七、if从句中用过去完成式,表示过去未实现的条件(例如由于不可能实现或某人之未能实行)。 1. If they had startedearlier,they would have arrivedin time. If they had not started when they did,they would not be here now. 第三,在文学体栽中,if有时可省略,然后将主语与所用的限定动词(尤其是were,had,should)倒置。例如: 1. Should it (=if it should)be necessary,I will go. 倘若有必要,我会去的。 2. Were I(=if I were) in your place,I would do the same . 3. Had I(=if I had)known earlier,I would come.如果我早一点知道,我就会来。 八、if与其它一些介词的连用。 (1)as与if连用,它的意思是:“仿佛、好像”同样引导从句。例如: 1. It isn’t as if we are rich.(We are not rich.)我们不像富有的样子。(即我们不富有) 2. It isn’t as if he doesn’t know the ruler.(i.e.He does know the rulers.) (2)as if还可以引导感叹句。例如: As if I would allow it!(i.e.I would certainly not allow it!) (3)if与only连用。常表示愿望或一个未实现的条件,尤其用于感叹句中。例如: 1. If only he arrives in time!他若能及时到达就好了! 2. If only she would marry me!但愿她能嫁给我! 3. If only she had known about it!(But she didn’t know.) 1.if 可引导状语从句----“如果...,假使...”[就现在,过去,未来可能实现之事加以推测时] If you are tired, we will go straight home 如果你疲倦了,我们就直接回家 If you have finished reading this book, please return it to me Do you mind if I open the window? 如果我打开窗子,你介意吗?

相关主题