多维数组与指针 用指针可以指向一维数组,同样也 可以指向多维数组中的元素 1.二维数组元素的地址 可以将二维数组理解为“数组的数组” 例如 inta[2][3]={(1,2,3)(4,5,6)} 可以理解成为两个一维数组,每个 数组由三个元素组成
多维数组与指针 用指针可以指向一维数组,同样也 可以指向多维数组中的元素 1.二维数组元素的地址 可以将二维数组理解为“数组的数组” 例如: int a[2][3]={(1,2,3),(4,5,6)}; 可以理解成为两个一维数组,每个 数组由三个元素组成
多维数组与指针 两个一维数组的起始地址分别是: 第一行元素的起始地址:a[0] 第二行元素的起始地址:a[1] 注意:在二维数组中,a[0],a1]所表示 的并不是一个元素,而是每行的第一个 元素的地址
多维数组与指针 两个一维数组的起始地址分别是: 第一行元素的起始地址:a[0]; 第二行元素的起始地址:a[1]; 注意:在二维数组中,a[0],a[1]所表示 的并不是一个元素,而是每行的第一个 元素的地址
多维数组与指针 在上述二维数组中,每个元素用指 针的表示形式为: *(a[订+) 其中a[表示二维数组第I行的起始地址 j是二维数组第j列的偏移,所以a[+表 示的就是元素a订订的地址,而*a[j+j) 就表示该元素的值
多维数组与指针 在上述二维数组中,每个元素用指 针的表示形式为: *(a[i]+j); 其中a[i]表示二维数组第I行的起始地址 j是二维数组第j列的偏移,所以a[i]+j表 示的就是元素a[i][j]的地址,而*(a[i]+j) 就表示该元素的值
多维数组与指针(程序一) #include #include maino int a314],p, i-l, for(=0j<3j++) for(p=all; p<all+4; p++, 1++) p
多维数组与指针(程序一) #include #include main() { int a[3][4],*p,i=1,j; for(j=0;j<3;j++) { for(p=a[j];p<a[j]+4;p++,i++) { *p = i;
多维数组与指针(程序一) for(=0j<3j++) for(p=alil p<a0]+4; p++, i++) printf(%03d"*p) printf("n system("pause): 1
多维数组与指针(程序一) } } for(j=0;j<3;j++) { for(p=a[j];p<a[j]+4;p++,i++) { printf("%3d",*p); } printf("\n"); } system("pause");}
多维数组与指针 多维数组还可以用另外的方法来定义和 表示 如:inta[2J[3]={(1,2,3)(4,5,6)}; (*p)3] 它指向包含三个整形元素的一维 数组,注意,*p两侧的括号不可以缺少 另外,在引用这些数组的时候, 般用*(*(p+i)+j),不能够写成* ((p+i)+j)
多维数组与指针 多维数组还可以用另外的方法来定义和 表示: 如: int a[2][3] = {(1,2,3),(4,5,6)}; int (*p)[3]; 它指向包含三个整形元素的一维 数组,注意,*p两侧的括号不可以缺少 另外,在引用这些数组的时候,一 般用*(*(p+i)+j),不能够写成* ((p+i)+j)
多维数组与指针 其中*(*(p+i)+j)表示的是第I行第j列的 元素的值 如果写成了*((p+i)+j)则表示第 (I+j)行的第一个元素的地址 以上两种写法得到的结果截然不同, 因此使用时要注
多维数组与指针 其中*(*(p+i)+j)表示的是第I行第j列的 元素的值。 如果写成了*((p+i)+j)则表示第 (I+j)行的第一个元素的地址 以上两种写法得到的结果截然不同, 因此使用时要注意
字符串和指针 字符串的表示形式: 1用字符数组存放一个字符串,然后输 出该字符串 2.用字符指针指向一个字符串 采用此方法时无须定义字符数组,可 以直接定义字符指针指向字符串中的字 符
字符串和指针 字符串的表示形式: 1.用字符数组存放一个字符串,然后输 出该字符串 2.用字符指针指向一个字符串 采用此方法时无须定义字符数组,可 以直接定义字符指针指向字符串中的字 符
字符串和指针 字符指针指向一个字符串的定义方法: char string="hello China 注意: 在上述定义中,它等价于 char *string string= hello china!” 是将字符串“ hello china?的首地址赋值给指 针变量 istring,而非将该字符串每个元素赋值 给 string( string不是字符串数组)
字符串和指针 字符指针指向一个字符串的定义方法: char * string = “hello China!” 注意: 在上述定义中,它等价于 char *string; string = “hello China!” 是将字符串“hello China”的首地址赋值给指 针变量string,而非将该字符串每个元素赋值 给string(string不是字符串数组)
字符串和指针 #include #include maino char *strl=hello china printf("%osn"str1) system("pause
字符串和指针 #include #include main() { char *str1="hello China!"; printf("%s\n",str1); system("pause"); }