一、C预处理
二、指针
语句
cpp
p=&c;
将变量c的地址赋值给变量p,称p为"指向"c的指针。
(1)区分C语言中的运算符&与*
cpp
int x=1,y=2,z[10];
int *ip;/*ip是一个指向int型数据的指针变量*/
ip=&x;/*将变量x的地址赋值给ip,或者等价地说成使ip指向x*/
y=*ip;/*将ip指向位置的内容赋值给变量y,现在y=1*/
*ip=0;
/*注意,现在ip指向的存储器单元内的内容被赋值成为0
* 也就是说现在x的值等于0
*/
ip=&z[0];/*现在把变量z[0]的地址赋值给ip*/
(2)指针ip的声明
cpp
int *ip;
(3)
cpp
y=*ip+1;
/*将*ip指向对象的值取出并加1,然后再将结果赋值给y*/
*ip+=1;
/*将*ip指向的对象的值取出并加1*/
等价于:
(*ip)++;
(4)指针当作变量直接使用
cpp
//*指针iq指向另一个整型*/
iq=ip;
/*将把ip中的值拷贝到iq中,这样iq也指向ip指向的对象*/
三、指针与函数参数
(回看上面指针变量s声明的格式......)
四、指针与数组
在函数定义中,形式参数:
cpp
char s[];
和
cpp
char *s;
是等价的。