实例1-二维数组遍历
#include <stdio.h>
int main()
{
char a[10] = "dogs";
for (int i = 0; i < 20; i++) {
printf("a[%d] = %c\n", i, *(a + i));
}
char b[5][10] = { "abcdef","ghijkl","mnopq","rstuv","wxyz." };
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 10; j++) {
printf("b[%d][%d] = %c\n", i, j, *(*(b + i) + j));
}
}
return 0;
}
运行结果
实例2-指针数组
#include <stdio.h>
int main()
{
char* p[2];
char b[2][5] = { "6938","8254" };
for (int i = 0; i < 2; i++) {
p[i] = b[i];
}
for (int i = 0; i < 2; i++) {
printf("p[%d] = %s\n", i, *(p + i));
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 5; j++) {
printf("p[%d][%d] = %c\n", i, j, *(*(p + i) + j));
}
}
for (int i = 0; i < 2; i++) {
printf("b[%d] = %s\n", i, *(b + i));
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 5; j++) {
printf("b[%d][%d] = %c\n", i, j, *(*(b + i) + j));
}
}
return 0;
}
运行结果
实例3-一维数组与二维数组的区别
#include <stdio.h>
int main()
{
int a[4] = { 1,2,4,5 };
for (int i = 0; i < 4; i++) {
printf("a[%d] = %p\n", i, a + i);
printf("a[%d] = %p\n", i, &a[i]);
printf("a[%d] = %d\n", i, *(a + i));
printf("a[%d] = %d\n", i, a[i]);
}
int b[4][3] = { 1,2,4,5 };
for (int i = 0; i < 4; i++) {
printf("b[%d] = %p\n", i, b + i);
printf("b[%d] = %p\n", i, *(b + i));
printf("b[%d] = %p\n", i, b[i]);
printf("b[%d] = %p\n", i, &b[i]);
}
return 0;
}
}
运行结果
实例4
#include <stdio.h>
int main()
{
int b[4][3] = { 1,2,4,5 };
for (int i = 0; i < 4; i++) {
printf("b[%d] = %d\n", i, *(*b + i));
printf("b[%d] = %d\n", i, **(b + i));
printf("b[%d] = %p\n", i, *(b + i));
printf("b[%d] = %p\n", i, b + i);
printf("b[%d] = %p\n", i, b[i]);
printf("b[%d] = %p\n", i, &b[i]);
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
printf("b[%d][%d] = %d\n", i, j, *(*(b + i) + j));
}
}
return 0;
}
运行结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)