今天学了指针举了两个例子,最先讲了一级指针*p
后面讲二级指针 **p
举了两个例子
int a=100,*p=&a,**pa=*p;
*p=1000;
**pa=1;
printf("%d",a);
getchar();
输出结果为1;
因为二级指针比一级指针高级;
举例钥匙,a中的东西如果说需要钥匙打开,就是*p有a的钥匙,而**p有*p的钥匙从而进入a中改变a中的值;
另外:指针是有自己单独的空间的;
他们的类型会随着不同类型的变量的改变而改变;
但是他们的空间始终是4个字节;
保存着他所指的地址,就像是存放钥匙的地方;
p 星号和变量组成 是取值 本身的地址就是p的地址
指针作为函数参数
指针作为函数参数
void f(int *num1,int *num2)
{
*num1 = *num1 ^ *num2;
*num2 = *num1 ^ *num2;
*num1 = *num1 ^ *num2;
}
void main()
{
int a = 100, b = 200;
f(&a, &b);
printf("a = %d b = %d", a,b);
getchar();
}
指针的格式int *num1=&a, num2=&b;
在指针后面跟的一定是地址
/*
二级指针
*/
int main()
{
int a = 100, b = 200, c = 300,
*p1 = NULL, *p2 = NULL, **p3 = NULL;
p1 = &a;
p2 = &b;
p3 = &p1;
*p1 = 111;
p2 = &c;
**p3 = *p2;
p3 = &p2;
*p2 = 222;
p2 = p1;
**p3 = 333;
printf("\na = %d b = %d c = %d", a, b, c);
printf("\n*p1 = %d *p2 = %d **p3 = %d", *p1, *p2, **p3);
getchar();
}
指针:(point)
定义的格式 类型说明符 *变量名;
指针本身是一个变量,我们叫指针变量 p
指针变量的值一定是另一个变量的地址,当我们将某一个变量的地址,作为值赋给指针变量时,
我们就说该指针指向该变量,如
int a = 100;
int *p = &a;
那么此时我们说指针变量p指向整形变量a;
指针的类型:
指针的类型值指的是它所指向的变量的类型.
指针的作用:
可以访问操作内存;
指针定义以后必须初始化,赋值为NULL;
在C语言中,使用指针时,必须确保指针指向的是一块确定的内存区域,
确定理解地址确定,内存区域大小确定.
int a = 100,*p = &a;