- 行指针和元素指针使用二维数组
#include<iostream>
using namespace std;
int main() {
int b[3][5] = { {2,3,1,4,10},{6,2,5,8,3},{7,8,9,6,12} };
int (*p1) [5]= b,* p2 = &b[0][0];//int (*p1) [5]= &b[0];
int sum=0;
//行指针指向不变 输出
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
cout << p1[i][j] << " ";//p1[i][j] ,*(p1[i] + j),*(*(p1+i)+j)
sum += p1[i][j];
}
cout << endl;
}
//元素指针指向不变 输出
for (int i = 0; i < 15; i++) {
cout << p2[i] << " "; //p2[i],*(p2 + i)
sum += p2[i];
if ((i + 1) % 5 == 0)cout << endl;
}
//行指针指向变 输出
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
cout << *(*p1+j) << " ";//p1[i][j] ,*(p1[i] + j),*(*(p1+i)+j)
sum += *(*p1 + j);
}
p1++;
cout << endl;
}
//元素指针指向变 输出
for (int i = 0; i < 15; i++) {
cout << *p2 << " "; //p2[i],*(p2 + i)
sum += *p2;
p2++;
if ((i + 1) % 5 == 0)cout << endl;
}
cout << sum << endl;
return 0;
} 我是将每种方法都列出来了,真正运行的时候选其中一种就可以了 -
C++获取一个字符:cin.get(数组名称,字符数量,终止字符(不读且留在输入队列中)) -
C++获取一行字符串:cin.getline(数组名称,字符数量,终止字符(默认\0结尾,且读入n-个数据。读取不存且丢弃)) -
C获取一行字符串:getline(cin,接受输入的字符串名称),需包含“#include<string>” -
cin.get()或者cin.get(ch)或者cin.get(组名称,字符数量).get() 用来清除换行符 后续自己还没有搞清楚,明天继续!
|