在char a[10];,a和&a只是值相等,其性质是完全不同的,a是a[0]元素的地址&a[0],a+1就是a[1]的地址&a[1]了;而&a是整个数组a的地址,&a+1就跳过这个数组了,是a[10]所在的地址了。你可以用printf("%p %p\n",a+1,&a+1);来检查它们的性质。但在有的编译器下,char a[];...
a[0]:是获取a这个数组第0个元素的值;&a[0]:是获取a这个数组第0个元素的地址;比如把数组比作一个小区,a[0]就是代表小区里某栋房子本身,而&a[0]则表示某栋房子的门牌号,你知道了门牌号,并且知道它在a小区,那么你就能找到这栋房子.望采纳!!^_^ ...
a[]是创建并声明一个数组。它本身不是数组名。a才是数组名。数组名本身也是一个指针。即a可以看成一个指针。只是a代表的是第一个元素的指针。
在C语言中,二维指针数组中"a+1"与"*a+1"的区别在于它们的引用方式不同。理解这一区别对于正确操作二维指针数组至关重要。当使用"a+1"时,实际上操作的是指针数组的下一个元素的地址。因此,如果"a"是指向一维数组的指针数组,那么"a+1"将指向"a"数组中的下一个一维数组的首地址。这种引用方式...
在数组中,数组名表示首地址常量。a等同于&a[0]。所以p=a。就是p指向a首地址。p=&a是错的,a已经是地址里。可以写p=&a[0]。
a数组是字符串数组。长度是sizeof(a)=7//包括A,B,C,D,E,F,'\0'。这个'\0'是在编译的时候编译器给加进去。用以限定字符串的边界。b数组是普通的字符数组。长度是sizeof(b)=6//包括包括A,B,C,D,E,F。
1、本质区别 双引号里面的是字符串, 而单引号里面的代表字符。2、输出区别 str = “a”输出的就是a这个字母;str = ‘a’输出的测试65 3、底层区别 用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
int *a是定义一个整型指针变量a。int a [ ]没有这种写法。int *a[]1、定义a是一个数组。2、每一个数组的元素是一个指针,指向一个整数。(int *)a 将指针变量a强制转换为整型指针,说明a一般不是一个整型指针,也可以是个整型指针。int (*a)[]1、定义a是一种指针。2、a指向一种整数数组...
而在二维数组里对&a[0] 得到是 int(*)[4],这里的&不是对地址取地址,而是更多的是类型转换。因为通过执行下面的程序会发现,a[0], a, &a[0][0], &a[0]的地址都一样的:include<stdio.h>int main(){int a[3][3];printf("%d\n", a);printf("%d\n", a[0]);printf("%d\...
7->a8->bx+a->cy+b->d显示程序运行结果 of long x,y;int a,b,c,d;c=x+a;d=y+b; 从程序中可以看到:x, y是长整型变量,a, b是基本整型变量。它们之间允许进行运算,运算结果为长整型。但c,d被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互赋值。其中的...