这道题目的答案是0x100014,0x10001和0x10004。我们可以通过图解来详细解释这个问题。📖 T3: 二维数组与指针 #include int main() { int a = {(0, 1), (2, 3), (4, 5)}; int* p; p = a; printf("%d", p); return 0; }这道题目的答案是1。很多同学可能会误以为二维数组的存储方式是按...
int *ptr = (int *)(&a + 1); //&a:取出整个数组的地址,&a+1:跳过一个数组 //&a的类型为:数组指针 int(*)[5] 所以要强转 //a为数组名,首元素地址,即为1的地址,+1,跳过一个元素,即为2的地址 printf( "%d,%d", *(a + 1), *(ptr - 1)); // 2 5 return 0; } 图解: 二.笔...
上一题已经说过了a[0]+1=&a[0][1],解引用就是第一行第二个元素,结果就是4 这里我们可以看出a[0]+1是一个地址,所以我们可以推断二维数组存的是一位数组的地址,a[3]={b[4],c[4],d[4],e[4]},这里的b,c,d,e分别是第一行第二行第三行第四行元素的数组名 也就是说如果a[3]={{1,2,3...
现在对其进行解引用,p是一个指向数组的指针,所以它依然是指向一个含有四个整型的数组(从p开始向后数四个整型),对p+4解引用得到的是这个数组的数组名,即为首元素地址,即图中箭头所指位置的地址,再对首元素的地址加2,得到p[4][2]的地址。即为这个位置: 这个地址就是&p[4][2],同时我们也可以找到a[4][...
sizeof(ptr)=4,ptr是一个指针,在32位平台上大小为4字节; sizeof(book)=320,book是一个二维数组,4*80*1 sizeof(book[0])=80,book[0]是第一维数组,因为此80*1 根据sizeof求数组元素的个数也很简单,拿第一个来说,就是sizeof(str1)/sizeof(char)。
指针c语言测试题1、在C语言中,指针变量的主要用途是什么? A、存储数组的长度 B、存储变量的地址 C、存储变量的类型 D、存储变量的值 (答案)B 2、若有一个int类型的变量a,如何获取变量a的地址? A、a B、*a C、&a D、**a (答案)C 3、若有一个指针变量p指向一个int类型的数组,如何表示数组中的第...
本章内容主要讲解指针练习题,里面的内容是我对这些练习题的一些理解。如有对C语言指针有疑问,可以查看我之前对指针介绍的三篇文章,希望可以帮助到大家。 题目一: 解答: 数组如图1.1所示,下面分布解释代码: int a[5] = {1,2,3,4,5};创建一个存放5个元素的数组,数组名为a,数组元素为1,2,3,4,5。
C语言中,指针数组经常用于存储一组字符串或一组指向不同类型对象的指针。 下面是一些经典的题目,对指针数组进行详细解析。 题目1:将一个字符串数组按字典排序。 解析:首先,我们声明一个指向字符串的指针数组,将字符串数组的每个元素赋值给指针数组的对应元素。然后使用冒泡排序法对指针数组进行排序,最后按照排序后的...
利用指针,输入两个数组 如图:二、代码截图【带注释】三、源代码【带注释】#include <stdio.h> int main(){ int a[50];int b[50];int *pa=a,*pb=b;//输入第一组数组 printf("请输入第一组5个数字:\n");for(int i=0; i<5; i++){ scanf("%d",a+i);} //输出第一组数组 printf("你...
A)pa是一个指向数组的指针,所指向的数组是5个int型元素 B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量 C)pa[5]表示某个元素的第5个元素的值 10word格式支持编辑,如有帮助欢迎下载支持。 文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。 D)pa是一个具有5个元素的...