为您找到"

c语言中*p=&a和p=&a有什么区别

"相关结果约100,000,000个

&在c语言中的意义

1、用在scanf里面,诸如此类 scanf("%d",&a); 就是取地址运算,此例中,就是把从键盘缓冲去读一个值(scanf的作用),然后赋值到内存中a变量对于的地址中 2、单一操作数前面作用是 取地址,例如:int *p, a; p=&a;3、两个 操作数 的情况则表示位运算中的 与 运算,如二进制操作:...

c语言请教:int* p; 和 int *p; 有什么区别。谢谢了

没有什么区别,只是声明风格不同。但是int* 这种声明容易引起误解,以为int*是一种数据类型,认为在同一声明语句中定义的其他变量也是指向int类型的指针。例如:int* p,q;p是指向int类型的指针,而q只是int类型的变量。

C语言、二维数组指针中的 * 和 &

用二维指针即:**a,那么a[3][4]这个数据(注意是一个数值)用指针怎么表示呢?*(*(a+3)+4),必须有两个“*”才行,要不就是一维数组了,里面是*(a+3)这代表的是第三行没错吧,第三行的什么呢?第三行的首地址没错吧,*(a+3)+4代表什么?代表第3行第4个元素的地址,在最...

c语言 int *p=5 是啥意思。 是p的地址是5。还是*p的值为5

外形一样的东西,在声明里 和 在语句里 意思 可能不同,这是 C 语言奇葩 之一,常困扰初学者的地方。int *p=5; 这是声明。声明里 *p 只是表示 声明 p 是指针。 *p=5 叫初始化。但这样的初始化方法是错误的!指针 初始化 要给 地址,不能给值。声明里,正确写法如下:int a=4;int *p...

c语言:设int a[10],*p=&a[1];则p+5表示的是()

在C语言中,假设我们有int a[10],*p=&a[1]; 这里p是指向数组a中第二个元素的指针。那么p+5实际上表示的是p所指向的地址基础上加上5个元素的大小。在大多数情况下,这个结果确实会指向a[6]的地址,但在一些特殊情况下,比如数组越界或内存对齐问题,p+5可能并不会严格等于a[6]的地址。在C...

c语言大神进 int a[2][3],*p; 怎样理解"对于 p=a;来说可以认为 p是...

>>>首先,这相当于两个变量定义语句: int a[2][3]; int *p;所以第二个标识符p是int *类型没有疑问,这是教科书上讲的;此时p是一个指向int型数据的指针变量。>>>对于int a[2][3]的理解,可以把 int [3]看作一个整体,意为由三个连续整型数据组成的单元;而a[2]是一个数组,由两...

...* sizeof (char ) ); 和char p【20】有什么区别呢

这个首先你要搞明白堆空间和栈空间,用malloc分配的内存是在堆空间的,如果你不free,这个空间在程序的运行过程中就一直存在。如果是定义的临时的数组变量,那他是在栈里面,这个空间在函数执行完,会被系统回收。定义的数组不可能发生内存不够的现象,如果不够,编译都通不过。

c语言中指针那一章,定义二维数组a[5][6],(*p)[6],&a和a有什么区别...

首先这个数组是5行6列, 首先要明白a是一个地址,而且是第一列的地址 a+1是第二列的地址,a+2是第三列的地址...a是第一列第一个元素的地址,*a+1第一列第二个元素的地址...&a是整个二维数组的地址,&a+1是内存中紧跟a[5][6]这块区域的地址 (*p)[6]这里的p的效果等于a,也是第一...

c语言中 *p+6 和 *(p+6)各是什么意思?能举个例子说明吗?

p+6 取出指针p中存放的数据然后加上6 (p+6) 取出由地址p向后偏移6个单位的地址上存放的数据。例如 int a[100]={1,2,3,4,5,6,7,8,9,10} int *p=a;p+6 则把a[0]=0变为a[0]=1+6=7 (p+6)则是a[7] 的值

C语言 有关*p=a,**q=&p;的问题

int a[5]={1,2,3,4,5};int *p=a,//此时p指向a[0],也就是1 q=&p;//此时q指向p printf("%d\n",*(p++));//这句相当于下面的两句的合并:/ printf("%d\n",*p);//按照p寻址并输出,此时p指向a[0],于是输出1 p=p+1;//p指针向前移动,此时p指向a[1],也就是2 / pri...
1 2 3 4 5 6 7 8 9

相关搜索