为您找到"
定义数组a[ ],为什么int *p=&a[0];等于int *p; p=&a[0];
"相关结果约100,000,000个
int *a是定义一个整型指针变量a。int a [ ]没有这种写法。int *a[]1、定义a是一个数组。2、每一个数组的元素是一个指针,指向一个整数。(int *)a 将指针变量a强制转换为整型指针,说明a一般不是一个整型指针,也可以是个整型指针。int (*a)[]1、定义a是一种指针。2、a指向一种整数数组...
但是这个用法是不正确的,int *p初始化时,应该赋的是一个地址的值,而不是变量的值 B: int a[2][3];int *p=a; // 这种用法虽然正确,但不常见,将二维数组的地址赋给一维指针 C D赋给p的都是地址,是正确的,C中通过&取a[0]的地址,D中&*转化功能抵消,相当于int *p=a;...
&a是存放a的内存地址,比如变量a=1,&a就等于存放这个1的内存地址的数值;例:include<stdio.h> intmain(){ inta[2]={1,2};intb=5;int*p1=a;int*p2=&a;printf("b:%d&b:%d\n",b,&b);printf("a[]:%d&a[]:%d\n",*p1,*p2);getch();return0;} ...
,。 而p虽然也指向1000,但他是指向字符变量 只能存放一个字节 78 其他123456就没有了。。--- 如果你改成 int *p=&a 那结果都是一样的 可以说正确了虽然没意义。 其实他们都指向的值是[bep-x*4]里面的东西 x是你定义变量顺序 ...
a int p = a 表示定义了一个变量p并给其赋初始值为a 因此int a,p=a的意思是定义一个变量a,由定义了一个变量p,并给p赋初始值为a 并不是数组 C语言中定义数组的方式为:类型 变量名[常量] 如: int arry[10];定义了一个整形数组arry共十个元素,分别为0---9 ...
答案:B p = &a ;p指向a的存储空间 a= *p + b; *p此时a的存储数值为10,即a = 11。
int* p2 = &a[0]; // 这两个相同,p1 p2都指向数组第一个元素// 但是 &a 的意思就完全不同了!它是对数组名取地址,得到的是一个指针,这个指针// 指向的是一个数组!
楼主 一定要 区分 声明、定义、初始化 三者之间的区别哦 int a, *p;这个叫声明,表示a是一个int类型,p是一个指向int类型的指针 还没有定义哦 p=a,这个叫赋值语句,但是右边的 a只是一个声明,而没有定义,因此是没有用的,这个用法是错误的 TC支持,那是因为 编译器对 标准C规则进行了扩展...
1、p++ ++p相当于把p指针移动到p指针当前值加上sizeof(t)的位置,比如p=100,sizeof(t)=4,p++或者++p之后p等于104。2、p-- --p相当于把p指针移动到p指针当前值减去sizeof(t)的位置,比如p=100,sizeof(t)=4,p--或者--p之后p等于96。3、其中++或者--在后面,先以p当前位置来计算...
因为通过执行下面的程序会发现,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\n", &a[0]);printf("%d\n", &a[0][0]);return 0;}与之相对的:int **p;p = (int ...