《C与指针》学习笔记(一)


1.  删除一段代码,没学过编程的人会直接删除;学过一点编程的人也许会用//注释掉,但是碰到一大段程序时,直接在这段程序的首尾分别加上//注释掉式,如果这段代码原先就有注释存在,就会出现问题。而C编程高手,一般都会用#if指令,才能使程序真正地从逻辑上删除。

#if  0
      statements
#endif

2.  如果几个源文件都需使用相同的函数,则应把该函数原型放在头文件中并使用#include指令包含它们。

这样可以避免由于同一个声明的多份拷贝而导致的维护性问题。


3.  常量:

      常量即不会发生变化的量,有时候我们希望一个变量在程序执行过程中不会发生改变,我们就可以将这个变量定义为常量。常量的初始化方法一般有两种:

1)在声明时对它初始化:

int  const a=15;

2)在函数声明中为const的形参,在函数被调用时会得到相应实参的值。

void  rearrange(char *output,char const *input,int n_columns,int const columns[]);

     调用这个函数时,input指针和columns[]数组(实际上也是指针)就被相应的初始化了。

const在这里的作用,表示函数将不会修改函数调用者所传递的这两个参数。


     下面比较一下这几个声明的区别:

int const *p;//p是指向整形常量的指针
int *const p;//p是指向整形的常量指针
int const *const p;//p是指向整形常量的常量指针

          第一个表示的是指针所指的地址上的内容是常量,不能被改变,而指针的值当然可以改变,它可以加一减一,指向别的地址;第二个表示的是指针所指的地址是常量,即指针所指的地址一直不变,而该地址上的内容是可以改变的,通过间接引用操作*p就可以改变内容;第三个表示的是指针所指地址和该地址上的内容均不能被改变。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值