|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
char *a[]={"c语言","python","java","c++"};
char **a;
a=&a[1];
=================================================================================
这段代码可以分段理解 首先拆分char *a[]可分成
char *a[0]="c语言”*a[1]="python" 等等 毕竟指针数组说白了就是一群指针
然后在模拟下指针出现的过程
char a[]="c语言"
char *a=a; //当然肯定会报错
因为字符串地址就是值所以
a=a 不需要这个*解引用
那么a=&a[1]相当于 多创建一个地址包含了a的地址
所以要加解引用访问他
*a=a=a[1]
然而还有多出来的*变量地址
所以要再加个解引用
**a=*a
========================================================================================
首先指针就是地址 *a就是一个新地址 算为地址1
a[1]里面的python 也是一个地址 算为地址2
地址1 包含地址2
先前的char a="python'' 也算是地址2
//下方都是方便理解的做法 写法肯定不对
a=&a[1] 算是地址3
*a是地址2
**a是地址1
因为指针变量是一个地址而他会包含被指向的地址
现在地址3包含了地址1 然后地址1包含了地址2
第一个*从地址3里面访问地址1 第二个*从地址1里面访问地址2
来个大佬帮忙分析分析 看看思路有啥不对的地方
|
|