使用*定义指针,例如char*p;
p是一个字符的指针;
如果在定义时没有使用100*,那么取指针指向的内存的值;
例如:
Inta[]=,3,5,7,9{1},*p;
P=一个;
所以乘以p等于1;
& and是地址操作符,例如,& and是变量p的地址;
比如:
# include < stdio . h >
main()
{
int[]={1,2,3,4,5},*p=;
printf("%d\n”*p);
printf("%d\n,p);
printf("%d\n”);
printf("%d\n”代替);
}
扩展资料:
指针变量可以加或减,比如p++、p+I、p-=I。指针变量的加和减不是简单地加或减一个整数,而是取决于指针指向的数据类型。
当给一个指针变量赋值时,要把一段数据的地址赋给它,而不是直接赋给一个整数,比如int*p=1000;这是毫无意义的,通常会导致程序在使用过程中崩溃。
确保在使用指针变量之前初始化它,否则您将无法确定指针指向的位置,如果指针指向的内存不允许,程序将崩溃。对于当前度不指向的指针,建议使用NULL。
可以减去两个指针变量。如果两个指针变量指向同一个数组中的一个元素,那么减法的结果就是两个指针之间不同元素的个数。
数组也是有类型的,数组的名称表示一组相同类型的数据。当您定义一个数组,或者与sizeof, &操作符一起使用它时,数组名称表示整个数组,并且表达式中的数组名称被转换为指向数组的指针。
定义指针时用*,如char *p;
那么p就是一个指向字符型的指针;
如果*不在定义时用,那就取指针所指向内存的值,如
int a[]={1,3,5,7,9},*p;
p=a;
那么*p就是1;
&是取地址运算符,如&p就是取变量p的地址;
下面这个例子:
#include
main()
{
int a[]={1,2,3,4,5},*p=a;
printf("%d\n",*p);
printf("%d\n",p);
printf("%d\n",a);
printf("%d\n",&p);
}
输出结果为:
1
1245036(各人的电脑可能不相同)
1245036(各人的电脑可能不相同)
1245032(各人的电脑可能不相同)
从结果可以看出,
*p为所指向的地址的值
p为所指向的地址,即a的地址
&p为指针变量p的地址