char *a[ ]

来源:互联网 发布:推饼游戏源码 编辑:程序博客网 时间:2024/04/29 01:16
a是数组,数组中的元素是指针,指向char类型,数组中所有的元素在内存中连续存放。
需要特别注意 : 
数组名在C里面做了特殊处理 , 数组名用数组所占用内存区域的第一个字节的内存地址替代了。并且数组名a也表示指针.所以a 并不表示a地址存储的内容, 而是a地址本身(这个从 a = &a 就能够体现出来).
a+1 表示a的第二个元素的内存地址
*(a+1) 则表示a这个数组的第二个元素的内容
*(*(a+1)) 则表示a这个数组的第二个元素的内容(char指针)所指向的内容
int main(){char * a[2] = {"abc", "def"};cout <<"a的值:             "<<a<<endl;cout <<"&a的值:            "<<&a<<endl;cout <<"a指向的值((int*)*a):"<<(int*)*a<<endl;cout <<"*a:                "<<*a<<endl;cout <<"a+1的值:           "<<a+1<<endl;cout <<"a+1指向的值(*(a+1)):"<<(int*)*(a+1)<<endl;cout <<"*(a+1):             "<<*(a+1)<<endl;return 0;}
输出:


原创粉丝点击