这题有意思,首先 int a [] [3] = {1,2,3,4,5,6}; 是一个二维数组,但是内存空间中这些数据的存储是连续的。可以理解为 int a [5] = {1,2,3,4,5,6}; a存储的都是数组的首元素地址,区别在于以为一维数组的下标代表的是地址,二维数组下标代表的是行和列的个数。int (*p)[3...
int a[3][2]={(0,1),(2,3),(4,5)};int a[3][2]={{0,1},{2,3},{4,5}};两种方式赋值不同,第一种数组的值分别为1,3,5,0,0,0,第二种是0,1,2,3,4,5 应该
应该为 int a[5] ={1,2,3,4,5};意思是:将a[0]~a[4]依次初始化为1,2,3,4,5.这句话在C语言里是不能初始化数组的,编译不会通过,初始化数组有一下方式:int a[5] = {1,2,3,4,5};包含5个成员的数组正好对应着五个值;int a[5] = {1,2,3};编译器给数组顺序赋值,...
二维数组的首地址是二级指针,二级指针就是指针的指针,意思就是一个指针指向了另一个指针。假如:int **b , *a; b = &a; 所以*b中存放的是指针a指向的地址值, b就是a的地址值。所以这里的**a 和*a就是这个道理。这里*a就是第一行首地址的地址值 二维...
include<iostream> using namespace std;int main(){ int a[10]={1,2,3,4,5,6,7,8};//a[8],a[9]默认初始化为0 int *p;p=&a[5];//指针p现在指向数组a中的第六个即a[6];//p[-3]即表示指针p向前移动三个单位,也就是a[2],注意实际地址变量的值不变,p仍是只想a【5】c...
1 2 3 4 5 6 7 8 9 10p当前指向的位置是 a[3]中的内容,对应的内容就是 4p 的初值就是4, *(p+5)= 9include <stdio.h>int main (int argc,char *argv[ ]){int a[10]={1,2,3,4,5,6,7,8,9,10};int *p;p=&a[3];printf("%d\n",*(p+5));return 0;}结果就...
else x=5 ;本题(1分)A:2B:3C:4D:5 A B C D 8、以下程序的运行结果是( )。void fun(int *n){ static int m=2; *n*=m-1; m+=2;}void main(){ static int m=1; int i; for(i=1;i<4;i++) fun(&m); printf("%d\n",m);}本题(1分)A:8B:10C:11D:15 A B C D...
for (int i = 0; i < 5; i++){ for (int j = 0; j < 5; j++){ int nPos = (i * 4 + j) % 5;printf("%d", a[nPos]);} printf("\n");}
if(bp>=a && bp<=ep)while(ep>bp)//a当前元素之后的元素向后移1位 { ep=*(ep-1);ep--;} } int main(){ int i=0,m=50,a[50],b[3],*pa=NULL,*pb=&b[2],flag;while(m>47) printf("请输入m值(>=47):"),scanf("%d",&m);printf("请给a数组输入%d个整数(确保升...
include <stdio.h>int main(){int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = &a[3], b; b = p[5];printf("%d\n", b);} 因为*p=&a[3]; 表明将a[3]的地址赋值给p,此时p[0]=a[3],因此p[5]=p[0+5]=a[3+5]=a[8]。