今天把学到的指针的知识整理了一下,希望对你们有所帮助。
1、指针的定义:指针也是变量,但独特于一般的变量,其他的变量都是存放的是实实在在的数据,而这个指针存放的是内容所在的地址,指向的是一个地址,不是实实在在的数。
2、语法:int *point;
3、指针的使用:
(1)在此举出一个简单的Demo:
注释为红色字体
#include<stdio.h>
int main()
{
// 初始化,声明变量的同时,给变量赋值
int myInt=200;
// 声明一个指针,初始化的值是myInt的地址
int *myPointer = &myInt;
// 打印myInt 的地址
printf("The myInt's address is %p\n",&myInt);
// myPointer存放的数据是地址,在这里是myInt的地址
printf("The myPointer point address is %p\n",myPointer);
*myPointer=200;
printf("The myInt'x value is %d\n",myInt);
return 0;
}
输出结果如下:
The myInt's address is 000000000061FE44
The myPointer point address is 000000000061FE44
The myInt'x value is 200
(2)这个Demo是比前面的那一个更深入一点
int main(void)
{
int value=1000;
changVarValue(&value);
//value是个具体的值,要输出他的所在的地址的话,要加&符号
printf("the value'adress is %p\n",&value);
printf("In main the value is %d\n",value);
return 0;
}
void changVarValue(int *pValue)
{
*pValue=100;
//pValue表示一个指针,指定的地址存放的内容,取他的地址的话不用加*符号
printf("the pValue'address is %p\n",pValue);*
printf("In changVarValue the oldValue is %d\n",*pValue);
}
他的输出结果是:
the pValue'address is 000000000061FE4C
In changVarValue the oldValue is 100
the value'adress is 000000000061FE4C
In main the value is 100
在此讲一下: *的符号代表的是取内容,&符号是取地址;
*pValue 表示的是指定地址所存放的内容,所以当我们想要输出他的地址是多少时,*号就不需要了;
如果变量是具体值的话,想要得到他的地址时,需要加上&符号。
指针存放数据的地址也需要内存空间进行存放。
以上总结的知识希望对你你有所帮助。