数据结构与算法

前章

指针

指针:是保存其他变量地址的一个变量

 & 取变量地址
 * 取地址的值
 
 * + 变量的地址  =  地址的值
 & + 变量名 = 变量的地址

数组名本身就是指向首元素的指针

指针和函数

//指针作为函数的参数和返回值
练习: 交换 a b两值(a<b)  使用四种方法
法1 :位运算
 void wei(int a,int b){
   
     a = a ^ b;
     b = a ^ b;
     c = a ^ b;
 }2:加法
 void wei(int a,int b){
   
    a = a+b;
    b = a-b;
    a = a-b;
}3:除法
 void wei(int a,int b){
   
    a = a*b;
    b = a/b;
    a = a/b;
}4: 指针
   #include<studio.h>
    void aswd(int *p1,int *p2);
    main{
   
    int a = 10;
    int b = 20;
    int *p1 = &a;
    int *p2 = &b;
    aswd(p1,p2);
    
}
 void aswd(int *p1,int *p2){
   
     int temp = *p1;
     *p1 = *p2;
     *p2 = temp;
 }

结构体

结构体: 将基本类型和派生类型组合起来的复杂类型。

语法: struct 结构体名{

成员列表;

};

struct User{

char name[10];

char username[10];

char age[10];

}

构建对象

struct 结构体名 结构体变量 ={ 成员列表的值};

//赋值

struct User user ={”张三“,”12“,”123“};

//得到值

printf("%s",user.name); //字符串 %s

printf("%d",user.age); //整数 %d 小数 %f

结构体变量
 1. 随时使用随时定义
 struct 结构体名 结构体变量 ={
    成员列表的值}2. 在创建结构体的时候就定义
 struct User{
   
  char name;
  char username;
  char age; 
}user1,user2;
user1 ={
   ”张三“,”12“,”123}3.匿名结构体
 struct{
   
  char name;
  char username;
  char age; 
}user1,user2;
user1 ={
   ”张三“,”12“,”123}4.一个结构体变量作为另一个结构体的属性
   typedef char *Sting[10];
   struct Car{
   
   String color;
    成员;
   };
   struct Person{
   
      struct Car car; 
   }p;
   调用 p.car.color;
结构体数组
typedef char *Sting[10];
struct Catr{
   
  String color;
  
}struct Car cars[] ={
   
 {
   "yello",5},
 {
   "green",3},
 {
   "red",20}
};

int length = sizeof(cars)/sizeof(struct Car);
for(int i=0;i<length;i++){
   
 printf("%sm,%d",cars[i].color,cars[i].age)
}


结构体指针
int a =10;
int *p;
p = &a;

struct Car car ={
   "白色"3}struct Car 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安宁#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值