若有定義語句:char s[3][10],(*k)[3],*p;則以下賦值語句正確的是:A、p=s; B、p=k; C、 p=S[0] D、k=s
若有定義語句:char s[3][10],(*k)[3],*p;則以下賦值語句正確的是:A、p=s; B、p=k; C、 p=S[0] D、k=s
我想知道其他3個答案為什么是錯誤的!,
其他人氣:933 ℃時間:2019-11-05 20:40:37
優(yōu)質(zhì)解答
首先說 指針數(shù)組和數(shù)組指針.
數(shù)組指針 char (*k)[3];
數(shù)組指針 char s[3][10] *(p[3]) p[3]存儲的都是char*指針.
p*是普通的char指針
所以 p=s[0]正確我沒看懂你想表達(dá)的是什么?可能我的水平有限!!p=s; s+1一次移動的是10個字節(jié),p+1一次移動1個字節(jié)p=k;與上同理。 k=s k+1一次移動3個字節(jié) ,s+1個字節(jié)例子://逐步取消注釋 運行。#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="<