打印数组地址 printf("%p",&arr[0]); // 打印数组0位数据的十六进制地址,用%p。 某个数组前三个位置的数据的地址如下 0000005FBFFEFBE80000005FBFFEFBEC0000005FBFFEFBF00000005FBFFEFBF40000005FBFFEFBF8 //int 的数据是4个字节,数据地址间相差4. 如果打印数组名的地址 = 数组索引0的地址 打印数组大小 print...
* @brief print_array 打印二维数组的值和地址 * @param array */voidprint_array3(int array[][3]){// 循环控制变量int i=0,j=0;printf("\nprint value and address :\n");// 打印 二维数组 值for(i=0;i<2;i++){for(j=0;j<3;j++){printf("array[%d][%d] = %d , address = %d\n...
/*数组名称演示*/#include<stdio.h>intmain(){intarr[8] = {0};//数组名称代表数组是第一个存储区的地址printf("arr是%p\n", arr);//%p用来输出地址printf("&arr[0]是%p\n", &arr[0]); printf("sizeof(arr)是%d\n",sizeof(arr));//对数组名称进行sizeof计算的结果是数组里所有存储区的总...
int main() { int arr[] = {1,2,3,4,5,6,7,8,9,0}; int* p = arr; int sz = sizeof(arr)/sizeof(arr[0]); int i = 0; for( i = 0 ;i < sz ;i++) { printf("%d",*(p+i)); } printf("\n"); for( i = 0 ;i < sz ;i++) { printf("%d",arr[i]); } pr...
C语言对数组取地址 #include <stdio.h>main() {inta[5] = {1,2,3,4,5}; printf("a=%p\n", a); printf("a=%p\n", &a); printf("a=%p\n", &a+1);int*ptr = (int*)(&a+1); printf("%d %d\n", *(a+1), *(ptr-1));...
数组地址 :下面的数组张红 ,&array是数组的地址 ; 代码语言:javascript 复制 int array[10]; 二、代码示例 代码示例 : 代码语言:javascript 复制 #include<stdio.h>#include<stdlib.h>#include<string.h>/** * @brief 主函数入口 * @return */intmain(){// 定义数组int array[10]={0};// 打印数组...
也就是数组的首地址),而打印&arr2是输出arr2这个指针变量存放的地址,自然是不相等的。
我们创建了一个数组arr,第一个printf()语句来打印arr这个数组名,第二个printf()语句来打印数组arr首元素的地址,程序运行结果如下: 我们可以发现两个printf()语句输出的结果是一样的,那么我们就可以得出结论:数组名就是首元素的地址 我们再来看一段代码: ...
我汗!首先,地址不是4位8进制数。地址是16进制数。具体多少位,是内存位宽而定。其次,用%x可以打印出来,结果是地址,这个不需争论,但是这个地址不是严格按照地址格式走的。地址格式是确定位数的,例如0012FF7C。而用%x打印出来的是12ff7c。用%#x打印出来0x12ff7c。么有其他区别。