定义的不同:1、*p[3] 这个是一个指针数组,它所代表的意思是每一个元素都相当于一个指针变量;例:int a=10,b=20,c=30;int*p[3]={&a,&b,&c};2、(*p)[3] p是一个指针变量,表示指向含有3个整型元素的一维数组;例:int a[3]={1,2,3}; 那么p就是指向这个数组a的指针;int(*...
首先你要明白,a是个十六进制的地址常量,a其实就是a[0]这个数值的地址,也就是a=&a[0] , p这个字母一般把它定义为地址, *p就是p指向的数值的值,你却把一个值定义为一个地址(*p=a 这种写法是错误的),不符合常理。不能这样定义, 只可定义为p等于a ,也就是*p等于a[0],p指向a...
p++ => p=p+1 ,故p++的内存地址发生改变 , 指向下一个地址 ,等同于内存地址加了一个int(4字节)类型大小,使用printf("%d\n", *(p + i))打印会出现下标越界的问题 (如上:-858993460)。 原因: p++是往后移了一个位置然后再去取值。 以上图为例,一开始p的地址为0xff00,p++的地址就是0xff04,然后...
含有p=A[0][0]的肯定错误,因为p是指针,A[0][0]是第一个元素的值,即A、C错误 p=&A[0][0] 即 &A[0][0]的地址给p,肯定正确 p=A[0]是正确的,因为二维数组可以看成多个一维数组,数组名即地址。A[20][10]看成20个一维的,A[0]...A[19]是每个的地址 所以,D ...
首先(*p)[3]是一个指针数组,意思就是p这个指针是指向一个含有3个元素的数组的,那么p指针每一次加1就相当于把p中存的地址加6(前提是int类型占2个字节,在VC中是占4个字节).举个例子int a[3][3]int(*p)[3]p=a; //也就是把数组a的首地址存放到p中那么p[1]就是a[1][0]的地址,p[1][0]就等...
已定义数组a和指针变量p:int a[ ] = { 2, 4, 6 }, *p = &a[2];计算机执行下列语句:cout<<*p--;cout<<*p; 执行后显示器将显示()。 A. 24 B. 46 C. D. 42 如何将EXCEL生成题库手机刷题 如何制作自己的在线小题库 > 手机使用 分享 反馈 收藏 举报 ...
第四阶段—指针—多级指针的使用.:char a[] = "hello"; char *p = &a[0]; char **q = &p; 通过p输出数组中的每一个字符和它对应的 ascii码十进制形式. 要求通过q输出数组中对应的每一个字符和它对 应,...
int *p p=array+1 p=numberint *p\r\np=array+1\r\np=number 解析:函数max_min_value()中用到了指针变量p,显然应在第一个空格处填int *p。函数 max_min_value()中的for循环逐一把数组中的元素与max和min的当前值进行比较。max和 rain的初值是数组的第1个元素值,第1次比较应与第2个元素比较,即array...
指针理解与常见编译错误解决技巧 | 在学习C语言过程中,新手经常遇到的一个问题是理解指针的概念。指针是存储另一个变量地址的变量,关键在于掌握它的声明和使用。例如,int *p;声明了一个指向整型的指针p。理解指针最好的方法是通过实际例子,如使用指针遍历数组元素。此外,编译错误也是常见问题,多数由拼写错误或遗漏分号...
答案:p=p+7或p+=7 [解析] 本题考查通过指针引用数组元素。值为36的数组元素在a数组中是第8个元素,即a[7]。在程序中,p=a;语句将数组a的首地址赋给了指针变量p,则可以用*(p+i)来表示数组元素,*(p+i)与a[i]等价,a[7]可表示为*(p+7)。要使指针p指向a[7],可以用p= p+7移动指针,故填写p...