地址p=000000000061FDF0 地址p2=000000000061FDF0 根据指针地址偏移,可以打印数组 #include<stdio.h>intmain() {inta[5]={1,2,3,4,5};int*p=&a[0];int*p2=a; printf("地址p=%p\n",p); printf("地址p2=%p\n",p2); printf("打印数组:\n");for(inti=0;i<sizeof(a)/sizeof(a[0]);i++)...
我们创建了一个数组arr,第一个printf()语句来打印arr这个数组名,第二个printf()语句来打印数组arr首元素的地址,程序运行结果如下: 我们可以发现两个printf()语句输出的结果是一样的,那么我们就可以得出结论:数组名就是首元素的地址 我们再来看一段代码: #include<stdio.h>intmain(void){intarr[10];printf("%p...
int arr[]={9,8,7,6,5,4,3,2,1,0}; printf("%p\n",&arr[0]);//打印数组的首地址 printf("%p\n",arr);//打印数组的首地址 printf("%p\n",&arr);//打印数组的地址 return 0; } 1. 2. 3. 4. 5. 6. 7. 8. 注意区分第二个和第三个printf,虽然打印结果相同,但是含义不同。 print...
#include<stdio.h>#include<stdlib.h>#include<string.h>/** * @brief 主函数入口 * @return */intmain(){// 定义数组int array[10]={0};// 打印数组首元素地址printf("array : %d\n",array);// 打印数组首元素地址 + 1printf("array + 1 : %d\n",array+1);// 打印数组地址printf("&array...
C语言:数组首地址 #include <stdio.h>//a数组首地址a[0],对应第1个元素,加4,对应第5个元素main() {inta[]={45,66,78,95,68,96,99},*b=a; printf("%d",*(a+4)); getchar(); }
也就是数组的首地址),而打印&arr2是输出arr2这个指针变量存放的地址,自然是不相等的。
。所以打印输出arr[1]要用%p。而不是%d。include <stdio.h> int main(){ int a[]={10};int b[]={20};int c[]={30};int *arr[]={a,b,c};printf("数组名b表示其数组首地址:%p\n",b[0]);printf("arr[1]就是b数组的首地址:%p\n",arr[1]);return 0;} ...
&数组名:取出的是整个数组的地址(打印出首元素地址作为整个地址地代表) &数组名[0]:取出的是数组的首元素地址 数组名:取出的是数组的首元素地址 注意: ①绝大多数时候,&arr[0]和arr都是首元素地址,但是也有例外: sizeof(arr)/sizeof(arr[0]);arr表示整个数组,sizeof(arr)表示整个数组的大小。