指针:
1.指针是什么?起什么作用?
指针是变量的一种,里面是一个地址,通过这个地址找到要找的数据。
实质:单元的地址就是指针内容;
2. 指针运算符
&是取地址的运算符,*是表示指针运算符
例:
int *p1,a ;
p1=&a;
*p1 =3;
3.指针作函数参数
函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。作用是将变量的地址传送到另一个函数中。
参考例程:p1swapp2, aswapb ;abcswap ;
注意:变量的地址赋予指向相同类型的指针变量
4.指针的运算–赋值运算:
指针变量初始化赋值;
把一个变量的地址赋予指向相同数据类型的指针变量;
例如:int a, *pa ;
pa = &a ; //把a的地址给pa,都是整型
把一个指针变量的值赋予相同类型的另一个指针变量;
Int a, *pa = &a, *pb ; pb = pa; // 把a的地址给pb;
指针和变量:
指针运算
Int x=3, y=0 , *px = &x;
y = *px +5; //把x的内容+5赋值给y
y = ++*px ; //px内容+1,赋值给y,
//++*px相当于++(*px)
y = *px++ ; //相当于 于y= *px; px++
指针与NULL的比较
空指针是对指针变量赋予0值得到的:
Int *p=NULL
p为指针变量,p=NULL表示空指针,不指向任何变量。
P !=NULL表示p不是空指针;
思考:
可不可以用指针变量P和0直接比较?
P==0;
P !=NULL;
注意:
指针变量未赋值时,可以是任意值,是不能使用的,会造成意外错误。而指针变量给NULL值后,则是可以使用的,只是不指向具体的变量。
指针变量的使用步骤:
1. 定义指针变量;
2.给指针变量赋地址;
3.正常使用指针进行运算;
指针与数组:
数组元素和指针
数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址
用指针引用数组元素
C语言规定:
如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。
例:
P的初值为&a[0] :
p+i和a+i都是a[i]的地址。
(p+i)和(a+i)都是p+i和a+i所指向的数组元素,即a[i].
例如:
(p+5), (a+5)就是a[5].
指针与 字符串:
在C语言中,可以用两种方法访问一个字符串。
1)用字符数组存放一个字符串,然后输出该字符串。
int main()
{
char string[]=”I love China!”;
printf(“%s\n”,string);
return 0;
}
说明:和前面介绍的数组属性一样,string是数组名,它代表字符数组的首地址
2) 用字符串指针指向一个字符串。
main()
{
char *string[]={”I love China!”,”I am ”};
printf(“%s\n”,string);
}
char *s=”C Language”; 则表示s是一个指向字符串的指针变量。
把字符串的首地址赋予s。