设有定义char *p[]={"Shanghai","Beijing","Honkong"};则结果为j字符的表达式是()

*p[1] +3
解引用 * 的优先级比 + 高,所以选项A输出为 字符‘B’的ANSI码 66 + 3 = 69;
*(p[1] +3)
*(p[3] +1)
p[3] [1]

**解析:**char型指针数组,可以看理解成形如char p[][]的二维数组。题中j所在位置即p[1][3],这时有多种办法表示p[1][3],(p[1] +3)或是(*(p+1)+3)

char *p[]={“Shanghai”,“Beijing”,“Honkong”};
cout << p[1] << endl; //Beijing
cout << “Beijing” + 3 << endl; //jing
cout << *(p[1] + 3) << endl; //j
cout << *p[1] << endl; //B
cout << *p[1] + 3 << endl; //69
cout << ‘B’ + 3 << endl; //69

你可能感兴趣的:(设有定义char *p[]={"Shanghai","Beijing","Honkong"};则结果为j字符的表达式是())