> 其他 >
若有定义语句:char s[3][10],(*k)[3],*p;则以下赋值语句正确的是:A、p=s; B、p=k; C、 p=S[0] D、k=s
我想知道其他3个答案为什么是错误的!,
人气:182 ℃ 时间:2019-11-05 20:40:37
解答
首先说 指针数组和数组指针.
数组指针 char (*k)[3];
数组指针 char s[3][10] *(p[3]) p[3]存储的都是char*指针.
p*是普通的char指针
所以 p=s[0]正确我没看懂你想表达的是什么?可能我的水平有限!!p=s; s+1一次移动的是10个字节,p+1一次移动1个字节p=k;与上同理。 k=s k+1一次移动3个字节 ,s+1个字节例子://逐步取消注释 运行。#include using namespace std;int main(){char s[3][10]={{"abc"},{"cde"}},(*k)[3],*p;char g[3]={'s','a','\0'};k = &g;p = g;//p = &s[0][0];与p=s[0]同理 这里不要取消注释。//测试p//cout << p << endl;//cout << p+1 << endl;//cout << p+2 << endl;//测试(*k)[3]//cout << k << " " << &g<< endl;//cout << k+1 << endl;//cout << k+2 << endl;//测试char s[3][10]//cout << "s="<
推荐
猜你喜欢
© 2024 79432.Com All Rights Reserved.
电脑版|手机版