char a[ ][ ]

二维数组
char a[2][10]
&a 是一个指针 , 加1 将加整个二维数组所占空间. 相当于加20字节.
a 是一个指针 , 加1 将加加1个1维元素所占空间.  相当于加10字节.
*a 是一个指针    ,  加1 将加加1个2维元素所占空间.  相当于加1字节.
**a 不是指针, 是char. 
a+1与*(a+1)相等 是因为a+1 表示1维的第2个元素的首地址, *(a+1)表示 1维的第2个元素中的第1个元素的地址. 指向同一个地址. 但是含义不一样.  (a+1) + 1 和 (*(a+1)) + 1就不一样了。 (a+1) + 1  表示1维的第3个元素的首地址;  (*(a+1)) + 1  表示 1维的第2个元素中的第2个元素的地址. 
int main()
{
	char a[2][6] = {"hello", "world"};
	cout <<"a的值:             "<<a<<endl;
	cout <<"&a的值:            "<<&a<<endl;
	cout <<"a+1:               "<<a+1<<endl;
	cout <<"&a+1:              "<<&a+1<<endl;
	cout <<"*a:                   "<<(int*)*a<<endl;
	cout <<"*a+1:                 "<<(int*)(*a+1)<<endl;
	cout <<"**a:                  "<<**a<<endl;
	cout <<"*(a+1):               "<<(int*)*(a+1)<<endl;

	cout <<"(a+1)+1:              "<<a+1+1<<endl;
	cout <<"*(a+1)+1:             "<<(int*)(*(a+1)+1)<<endl;
	
	return 0;
}

输出:


ps:
在腾讯面试的时候面试官问了个
char**a[8][6];
sizeof(a[6]);结果是什么?


a[6]是char**[6]类型的,所以其长度就是一个指针的长度*6 = 4*6 = 24
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值