typedef struct s{
int data;
struct s *next;
}*ps,stu;
定义好结构体:
1.使用typedef给结构体s起别名,即定义新的类型。
2. 定义指针变量*ps,及结构体变量stu
代码如下:
ps s1;
stu s2;
s1=&s2;//给指针一个地址
s2.data=1;//给(指针的地址目的)变量赋值
std::cout << s1->data << std::endl;
//从指针中获得地址变量的内容,
//使用->
std::cout << s2.data << std::endl;
//从变量中获得内容,使用.
输出为1。
以下附上完整指针与取址的比较代码
#include<stdlib.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct s{
int data;
struct s *next;
}*ps,stu;
int main() {
// plus2 = plus;
// std::cout << (*plus2)(2,3) << std::endl;
// std::cout << plus2(2,3) << std::endl;
int i = 10;
int *a = &i;//a取i地址,指针取 i地址的内容
int & b = *a;//b取指针a的内容,取址取a的地址
std::cout << *a << std::endl;
std::cout << a << std::endl;
std::cout << b << std::endl;
std::cout << &b << std::endl;
i ++;
std::cout << *a << std::endl;
std::cout << b << std::endl;
int c = 20;
a= &c;//a取地址,指针取内容
std::cout << *a << std::endl;
std::cout << a << std::endl;
int q=1;
int *w=&q;
w=&q;
*w=1;
ps s1;
stu s2;
s1=&s2;//给指针一个地址
s2.data=1;//给(指针的地址目的)变量赋值
std::cout << s1->data << std::endl;
//从指针中获得地址变量的内容,
//使用->
std::cout << s2.data << std::endl;
//从变量中获得内容,使用.
return 0;
}
运行结果如下: