c和指针
1.删除一段代码: #if #endif
#if 0
statements
#endif
2.数组参数是以引用的形式传递的(传值调用)。标量和常量是按值传递的(类似pascal里的var)
3.\ddd ddd表示1-3个八进制数字,这个转义符表示的字符就是给定的八进制数值所代表的字符。
\xddd 与上类似,只是八进制转换成了十六进制数。
4.标准并没有规定长整型必须比短整型长,只是规定它不得比短整型短。
5.尽管设计char类型变量的目的是为了让它们容纳字符型值,但字符在本质上是小整型值。缺省的char要么是signed char要么是unsigned char类型。所以只有当程序所使用的char型变量的值位于signed char和unsigned char的交集中,这个程序才是可移植的。
6.int * pi; pi是指向整型变量的指针。
int const * pi; pi是指向整型常量的指针。可以修改指针的值,不能修改它指向的值
int * const pi; pi是指向整型的常量指针。可以修改指向的值,不能修改指针的值。
int const * const pi; pi是常量指针,指向的也是常量。都不可以修改。
7.函数形参的作用域开始于形参的声明处,位于函数体外,如果在函数体内部声明了名字与形参相同的局部变量,它们就将隐藏形参。这个形参无法被访问。
8.任何在所有代码块之外声明的标识符都具有文件作用域。
9.如果某个声明在正常情况下具有external链接属性,在它前面加上static关键字可以使它的链接属性变为internal。
例如一个外部变量b, static int b;执行这个语句后变量b就为这个源文件所私有。可以防止其它源文件调用b。
10.静态变量:变量的缺省存储类型取决于他的声明位置,凡是在任何代码块之外的声明的变量总是存储于静态内存中,也就是不属于堆栈的内存,这类变量被称为静态变量。对于这类变量你无法为它们指定其他存储类型。
11.自动变量:在代码块内部声明的变量的缺省存储类型是自动的,也就是说它存储于堆栈中。
12.在代码块内部声明的变量加上static后可以使它的存储类型从自动变为静态。
13.函数的形参不能声明为静态,因为实参总是在堆栈中传递给函数,用于支持递归。
14.static用于函数定义时,或者用于代码块之外的变量声明时,static用于修改标识符的连接属性,从external变为internal,但是标识符的存储类型和作用域不受影响,用这种方式声明的函数或者变量只能在声明它们的源文件中访问。
当static用于代码块内部的声明时,用于修改变量的存储类型,从自动变量变为静态变量,但是变量的连接属性和作用域不受影响,用这种方式声明的变量在函数执行之前创建,并在程序的整个执行期间一直存在,而不是在每次代码块开始执行时创建,在代码块执行完毕后销毁。
15.
16.两个位进行AND操作 全都为1结果才为1, 两个位进行OR操作,全都位0结果为0,否则为1.
两个位进行XOR操作,不同为1相同为0
17.把指定位置为1: value = value | 1 << bit_number;
把指定位清0: value = value & ~ (1 << bit_number);
18.标准说明无符号值执行的所有移位操作都是逻辑移位,但对于有符号值,到底采用逻辑移位还是算术移位取决于编译器本身。但是你的测试并不能保证其他的编译器也用同样的方式,所以,一个程序如果使用了有符号数的右移位操作,它就是不可移植的。
19.a = x = y + 3;
不能认为x和a被赋予相同的值,如果x是一个字符型变量,那么y+3的值就会被截去一段,以便容纳于字符类型的变量中,那么a所赋的值就是这个被截短后的值。
20.++,–操作符的副作用:不论是前缀还是后缀形式,这些操作符都会修改它们的操作数。
= 操作符的副作用:包括所有其他的复合赋值符,它们都修改作为左值的左操作数。
21.大写转小写:ch = ch + 32; ch += ‘a’-‘A’;
小写转大写:ch = ch - 32; ch -= ‘a’-‘A’
相关阅读
GNN新作《Relational inductive biases,deep learning,a
当下AI的瓶颈: 静观现有AI,尤其是Deep Learning的发展如火如荼,几大热炒的明星模型无非MLP,CNN,和RNN。这些模型更倾向于是对现实世界
读书笔记摘自:奇特的一生:柳比歇夫坚持56年的时间统计法【俄】格拉宁 编者的话 跟人生志向、人生目标密切相关 制订自己的时
1、善用时间 有效的管理者知道他们的时间用在什么地方。他们所能控制的时间非常有限,他们会有系统地工作,来善用这有限的时间。 (1)
这个笔记在之前已经写了,怎么说呢,阅读思考量太少,写作格式也有问题,学习态度需认真自省这是老师的评价,然后我就拿了最低
指针变量的类型说明 对指针变量的类型说明包括三个内容:(1)指针类型说明,即定义变量为一个指针变量;(2)指针变量名;(3)变量值(指针)所