A 由于指针p指向变量a,即p==&a,所以*p==a,所以&*p==&a,而p==&a,所以&*p==p
首先,*p=&a不能这么写。&a表示a的地址,*p指的是p指向地址的值,两者不对等。其次,*p++的符号运算顺序是自右向左,p++指p指向的地址右移一位,再用*取值时数值不确定,不知道它指向的是什么值。应该用(*p)++。*p取到a的值,(*p)++ 等于a++即11。
3、英文中代表and,也可读and。4、该字符读音“z'da”。5、&还有“联合”的意思。比如“A&B”公司,就是“A”和“B”两间公司合并起来的。6、在某些电脑语言,如java中,表示按位进行“与”运算。7、英文拼写:ampersand。8、高级语言中的取地址符,如:“int a=0;int *p;p=&a;”,意为...
例如:int i=10; //定义了一个整型变量 int *p=&i; //定义了一个指针指向这个变量 int **p1=&p; //定义了一个二级指针指向p指针 那么取出10的值方式为:printf(“i=[%d]\n”,*p);printf(“i=[%d]\n”,**p1);
& 作用是取地址,取变量a 的地址;p=&a ,表示的是,P指向变量a的地址
include<iostream.h> void change(int *n, int len){ int a, *p= &a;for(int i= 0; i < len/2; i++){ p= *(n+i);(n+i)= *(n+len-1-i);(n+len-1-i)= *p;} } void main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};change(a, 10);for(int i= 0; i...
int a=2;//定义变量a,初始化值2 int *p=&a;//指针p指向变量a,换言之,指针p储存了变量a的地址 int *q=p;//指针q储存了指针p储存的地址(变量a的地址)换言之,指针q指向变量a q//可以代表变量a的值 q//可以代表变量a的地址
A:p指向a的地址,*p自然为1;B:指针数值可以表现为数组的形式,第一个元素对应p[0];C:*&a等同于*p;
&于拉丁语et (意为and)的连写,是一个逻辑语言,是指逻辑上表示两者属于缺一不可的关系,还表示意思是一个人和另外一个人之意,与and同义。如A&B,表示A与B,A和B,A×B。字符 & 的最早历史可以追溯到公元1世纪,最早是拉丁语et (意为and)的连写。最早的 & 是e和t的合字,后经过一些演变,形成了固定的合字...
p是指针, a是变量。 所以 &a, 或者p,或者&p, 都是地址。A里面 a不是地址。 *&a等效于a 也不是地址 。B里面 *a本身就是非法的。 &*a属于非法表达式。 *p是值,不是地址。C里面 *p不是地址,而是值。 注意 *&p 等效于p, 这个是地址。D里面 &a &*p和p都是地址。 这里 &*p...