新手求助
#include<iostream>using namespace std;
int main()
{
int x={1,3,5,7,9,11},*k,**s;
k=x;
s=&k;
cout<<*(k++)<<","<<**s<<endl;
return 0;
}
1.求解释
2.k=x与*k=x 有什么不同、还有这时的X是否=x,也就是1 指针变量,内存中装的是地址.
举例说明:
x是一个数组名,类型为int[],指向地址0x00001000;
内存中,地址0x00001000处连续存放着1,3,...
指针变量:
k类型为int*,存放的是一个地址。(假设k所在的内存地址为x011111111)
k = x; 操作之后,k中存放的数据为0x00001000;
s类型为int**,存放的是一个地址。
s = &k; 操作之后,s中存放的数据为0x11111111(即,k的地址)
如你所说,
k = x;就是把k的内存值修改为x指向的数组首地址(0x00001000);
*k = x; 这个操作是非法的,因为你把一个int[]类型赋值给int*类型,编译器会报错。
x(0x00001000)是否等于x(1),这个类型都不一样,肯定没法比较。
如果还不理解,可以单独QQ上聊一下,给你录个视频,指针部分文字还是比较抽象的。
n0noper 发表于 2016-3-10 17:00
指针变量,内存中装的是地址.
举例说明:
不懂{:10_243:}。
*k不应该是指针吗?*k=x;是不是代表指针k=x?
还有什么是**s,可以详细解说一下吗? n0noper 发表于 2016-3-10 17:00
指针变量,内存中装的是地址.
举例说明:
不懂
*k不应该是指针吗?*k=x;是不是代表指针k=x?
还有什么是**s,可以详细解说一下吗? 十天一刻 发表于 2016-3-12 11:35
不懂
*k不应该是指针吗?*k=x;是不是代表指针k=x?
还有什么是**s,可以详细解说一下吗?
2244894846@qq.com 可以求一下您的解析视频吗?{:5_93:}
页:
[1]