C与指针

  1. 在C中,注释常用的方法是/* statements */,注释之间不能嵌套
  2. 在1中的注释最好用来写评论,如果要注释掉代码,最好用#if指令
    #if 0
      some statements
    #endif
  3. 数组作为参数的时候传递的是数组首地址,也就是实参和形参共享一个地址,数组的下标量做参数时,情况和普通变量一样,这个时候形参和实参各自有各自的内存空间,互不干扰。
  4. C中只有4种基本类型,整型,浮点,指针,聚合;每个类型应该考虑它的三个属性:作用域,链接属性(extern static interal)和存储类型
  5.     多字节字符常量因为在不同的环境下,解读方法会有不同,所以不推荐使用
    char a;
    a='\((?'; /*不同环境会对a有不同解释*/

  1.      在代码块内部声明的变量,如果给它加上static,可以使它的存储类型从自动变为静态,具有静态存储类型的变量在整个程序执行过程中一直存在。但是并没有改变它的作用域,仍旧只能从函数内部访问。
  2. C 对某一位进行操作

            value=value|1<<2     把value的倒数第三位置1

            value=value&~(1<<2) 把value的倒数第三位置0

            if(value&1<<2)  如果value的第三位是1,则返回真

-------------------------------------------------------指针---------------------------------------------------------------------

int *p;

*p=12;

上面这一段的想法是定义了一个指向int的指针,并把12存储到p所指向的内存位置

然而这是非法的,因为此时p未被初始化,它指向一个不知名的地方...把12存储到这个位置非常危险


在对任何指针进行间接访问之前必须判断是否是NULL


数组名不可以进行++或者--操作,指向数组的指针可以自增或者自减操作。


结构自引用:

struct self_ref1
{
    int a;
    int b;
    struct self_ref ref;
};

struct self_ref2
{
int a;
int b;
self_ref2* ref;
};

self_ref1的声明是错误的,self_ref2的声明是正确的。关键就在于成员ref,在self_ref1中ref成员是结构,会出现递归导致编译器不知道结构到底是多大。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值