/使指针指向现有的内存 /
int x = 1;
int p = &x;// 指针 p 被初始化,指向变量 x ,其中取地址符 & 用于产生 *** 作数内存地址
/ 方法2:动态分配内存给指针 /
int p;
p = (int )malloc(sizeof(int) 10);
// malloc 函数用于动态分配内存
free(p);
单维数组名就是首地址,多维数组名就是第1维的首地址,因此取首地址,可以把数组名赋给对应的指针变量,或取索引为0的首个元素地址赋给对应的指针变量。举例:
单维
int
arr[10];
int
p
=arr;
或
int
p
=&arr[0];
二维
int
arr[10][10];
int
(p)[10]
=arr;
或int
(p)[10]
=
&arr[0];//
取第一维地址
int
arr[10][10];
int
p=
&
arr[0][0];
//
取多维中的首个元素
char p=new char;
DWORD AddValue=(DWORD)p;//强制类型转换
C++this指针:一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。
1既然楼主定义的指针变量a为指向结构体BBB的指针,那么tmp->a 当然是指向结构体BBB的指针啦
2比如;
定义另一个BBB b;
tmp->a=b;
这样不就赋值了嘛!!!
我把楼主提到的问题用代码写出啦,楼主自己看看!!!
举例如下:
#include <iostreamh>
#include<iomaniph>
#include<stdioh>
struct BBB
{
int m;
int n;
};
typedef struct _AAA
{
BBB a;
int x;
int y;
}AAA;
void main()
{
AAA tmp;
tmp=new AAA;
BBB b;
b=new BBB;
cout<<"请输入m n"<<endl;
cin>>b->m>>b->n;
cout<<"结构体指针变量b中的m和n:";
cout<<"m="<<b->m<<",n=" <<b->n<<endl;
tmp->a=b;
cout<<"结构体指针变量a中的m和n:";
cout<<"m="<<tmp->a ->m <<",n="<<tmp->a->n<<endl;
cout<<"修改指针变量a中的值,重新输入m n "<<endl;
cin>>tmp->a->m >>tmp->a->n ;
cout<<"修改数据如下:";
cout<<"m="<<tmp->a ->m <<",n="<<tmp->a->n<<endl;
cout<<"结构体指针变量b中的m和n:";
cout<<"m="<<b->m<<",n=" <<b->n<<endl;
}
在调用getline之前,先调用tellg()得到当前位置,然后getline(),需要返回的时候调用seekg()。 代码如下: #include #include #include using namespace std; void main() { string s; char ch[500000]; ofstream ob1("abtxt"); ifstream ifs("e
以上就是关于c++的指针和取地址求普及(详细)全部的内容,包括:c++的指针和取地址求普及(详细)、C语言如何获得数组首地址的指针、如何获取C++指针的地址数值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)