-
-
[分享]C语言中很多人不知道的小知识
-
2009-3-25 22:01
4588
-
高手就不用看了!
我只是觉得很多人可能不知道才抄出来分享的,如果大部分人都知道了就当我无知了。
1、你明白下面的声明的确切意思吗?
char * const *(*next) ();
理解C语言声明的优先级规则
A 声明从它的名字开始读取,然后按照优先级顺序依次读取。
B 优先级从高到低依次是:
B. 1 声明中被括号括起来的那部分
B. 2 后缀操作符:
括号( )表示这是一个函数,而
方括号[ ]表示这是一个数组。
B. 3 前缀操作符:星号*表示“指向……的指针”
C 如果const和( 或 ) volatile关键字的后面紧跟类型说明符(如int,long等),那么它作用于类型说明符。在其他情况下,const和( 或 ) volatile关键字作用于它左边紧邻的指针星号。
C语言的赋值规则
char *cp;
const char *cpp;
cpp=cp;
这样是没有问题的,而
char **cp;
const char **cpp;
cpp=cp;
这样是有问题的。
这些例子可能大家都懂,其实我只是想说C语言的赋值规则:
两个操作数都是指向有限定符或无限定符的相容类型的指针,左边指针所指向的类型必须具有右边指针所指向类型的所有限定符。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课