int *p=&a ; 这是很标准的,把a的地址个p指针变量。int *q;q=&a;这也是很标准的。定义一个指针变量,然后将a的地址赋值给她。int *r; *r=&a; 首先r是个指针变量,但是r指向内存中那个单元格呢?r没有赋初值就开始用了。这是很严重的。r是个游离态的指针。 *r表示取出r对应的那个地...
a = (int )(*(&p));//&p就是指针的地址,即所谓的“多重指针”而*(&p)就表示p了,其实这个东西很容易理解的。一个&,一个*;一个取地址,一个根据地址找变量,其实还是他自己,即p了,这个句子亦即 a=(int) p; 也就说,a就是p。a = (int )(&(*p));p就是a了,而&a就是p...
问题4:对于二维数组int a[2][4]以及int (*p)[4],因为a与p都是int型数组指针,所以类型匹配,所以对于第6行:p = a即可,如果想输出a[0][3],用printf("%d\n", *(*(p) + 3));即可。对于二维数组而言,存在&a的语句,它同样是数组指针,其步长是行数乘以列数乘以int型所占字节数...
p是一个指针变量。a是一个变量。p=&a, 把变量a的地址赋值给指针变量p。*p=a 变量a的值赋值给a指向的内存单位。
int a=100, *p=&a;//p=&a,把a的地址赋给指针变量p,那就表示指针变量指向了变量a printf("%d",*p);输出*p,意思是输出p所指变量中的内容,也就是输出a变量的内容,即100
int a=12; int b; int *p; int **ptr; p=&a;//&a的结果是一个指针,类型是int*,指向的类型是int,指向的地址是a的地址。 *p=24;//*p的结果,在这里它的类型是int,它所占用的地址是p所指向的地址,显然,*p就是变量a。ptr=&p;//&p的结果是个指针,该指针的类型是p的类型加个*,在这里是int**...
a=0;int p=0;*p=&a;这个编译是会报错的,&a得到了a的地址 就是一个int 的数据,复制给*p ,p是int ,*p就是int int*到int 就会报错!第三种int p;int a;*p = &a;这个朋友的也是对的,你再拆开定义 看看 (int*)*p 当然括号只是为了理解,这里p是指针的指针(当然也是指针,只是指针指向...
c语言中&有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。一、何为c语言 C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的...
int a=12; int b; int *p; int **ptr; p=&a;//&a的结果是一个指针,类型是int*,指向的类型是int,指向的地址 是a的地址。 *p=24;//*p的结果,在这里它的类型是int,它所占用的地址是p所指向的地 址,显然,*p就是变量a。 ptr=&p;//&p的结果是个指针,该指针的类型是p的类型加个*,在这里是...