当前位置:首页 >> 季节养生

水滴石穿语言之正确使用

2021-09-06 09:57 来源:莱西养生网

问题:const变量 const 限定的内容

下面的代码编译器会报一个错误,请问,哪一个语句是错误的呢?

typedef char * pStr;

char string[4] = \"abc\";

const char *p1 = string;

const pStr p2 = string;

p1++;

p2++;

答案与分析:

问题出在p2++上。

1)、const使用的基本形式: const char m;

限定m不可变。

2)、替换1式中的m, const char *pm;

限定*pm不可变,当然pm是可变的,因此问题中p1++是对的。

3)、替换1式char, const newType m;

限定m不可变,问题中的charptr就是一种新类型,因此问题中p2不可变,p2++是错误的。

问题:const变量 字符串常量

请问下面的代码有什么问题?

char *p = \"i\'m hungry!\";

p[0]= \'I\';

答案与分析:

上面的代码可能会造成内存的非法写操作。分析如下, “i\'m hungry”实质上是字符串常量,而常量往往被编译器放在只读的内存区,不可写。p初始指向这个只读的内存区,而p[0] = \'I\'则企图去写这个地方,编译器当然不会答应。

问题:const变量 字符串常量2

请问char a[3] = \"abc\" 合法吗?使用它有什么隐患?

答案与分析:

在标准C中这是合法的,但是它的生存环境非常狭小;它定义一个大小为3的数组,初始化为“abc”,,注意,它没有通常的字符串终止符\'\\0\',因此这个数组只是看起来像C语言中的字符串,实质上却不是,因此所有对字符串进行处理的函数,比如strcpy、printf等,都不能够被使用在这个假字符串上。

问题5: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 (char *) ; 因为char *是一个整体,相当于一个类型(如 char),因此,这是限定指针是const。

查看本文来源

如何缓解牙疼
宫颈炎治疗宫颈炎费用
乌鲁木齐哪家妇科好
相关阅读
大白熊犬呕吐拉血是什么毛病位置

大白熊犬昨晚吃多了,今早呕吐,拉稀,之后拉血,是什么毛病琪步莎:大白熊犬价格吃多了一般会把食物吐出,轻度拉稀,或者禁食一天一般情况会好,但如果拉稀严重甚至拉血,那有可能会是其他疾病,还是带...

大白熊犬后腿严重外八字需不需要治疗位置

大白熊犬从小后腿站立玩耍时就叉腿.看起来外八.走路和跑步时都正常.严重吗.需不需要治疗?淡淡的看:这是小狗的出生时就带的,属于先天性疾病。大白熊犬价格小脑发育不良。像楼上所说,补钙可以缓解病症,...

大白熊犬可以长多大大白熊犬体型较大位置

大白熊犬可以长多大,大白熊是一种体型比较大的狗狗,虽然它们的性格很温顺,也是非常优秀的宠物犬,不过该犬是不太适合在室内饲养的大型犬,如果家里条件不符合的话最好还是不要饲养比较好。不过是什么...

大白熊犬发情的一些事宜介绍位置

当我们饲养了一只可爱的大白熊犬时,狗狗的身体健康与生理健康也是我们最关心的事情。每当到了春秋两季的时候,就是大白熊犬发情的期,这一时期主人们一定要多加注意,一不留神可能你的大白熊犬就会怀孕...

大白熊犬剃毛后不喜欢露肚子睡觉了怎么回事位置

我家大白熊犬以前最喜欢的就是仰着睡,每次还喜欢仰着我给它按摩小肚子,前几天带它去剃了胎毛后(剃光拉~那个悔呀)不愿意露小肚子了,现在大白熊犬价格都是缩成一团睡,每次我按小肚子它也不愿意,一...

大白熊犬两天没拉便便了怎么回事位置

医院检查细小试纸在T2的位置,医生说要再观察,开了5针血清。 大白熊犬体温正常,精神也还可以,喝水,吃的不多(原主人应该喂的人吃的食物,现在是狗粮+狗罐头),大白熊犬尿尿正常,但是到现在也没便便...

友情链接