【printf函数】vprintf使用参数列表(va_list)传递参数

[二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇

格式化输出函数

最开始学C语言的小伙伴们,肯定都很熟悉printf("Hello\n"),我们利用printf来输出字符串到控制台,当然我们也可以利用printf来输出整数类型、浮点类型、其他等等类型,这一切都归功于格式化输出函数

printf 函数族一共有8个函数:

其中8个函数分为两大类,每一类中都有一个相互对应。例如:printfvprintf两个函数为一对。其能完全一样,不同点在于参数格式。

printf函数参数使用不定参数(...)传递参数,vprintf使用参数列表(va_list)传递参数。

fprintf()  "按照格式字符串将输出写入流中。三个参数分别是流、格式字符串和变参列表。"
printf()   "等同于fprintf(),但是它的输出流为stdout。"
sprintf()  "等同于fprintf(),但是它的输出不是写入流而是写入数组。在写入的字符串末尾必须添加一个空字符。"
snprintf() "等同于sprintf(),但是它指定了可写入字符的最大值size。超过第size-1的部分会被舍弃,并且会在写入数组的字符串末尾添加一个空字符。"
dprintf()  "等同于fprintf(),但是它的输出不是写入流而是一个文件描述符fd。"

"分别与上面的函数对应,但是它们将变参列表换成了va_list类型的参数。"
vfprint()、vprintf()、vsprintf()、vsnprintf()、vdprintf() 

printf函数族功能介绍

int printf (const char* _format,...);

printf是我们使用最多的一个函数,其功能为把格式化之后的字符串输出到标准输出流中。

大多数时候标准输出是控制台的显示,不过在MCU中,我们经常会将标准输出重定向到串口,然后通过串口查看信息。

所有printf函数族的返回值是:写入字符串成功返回写入的字符总数,写入失败则返回一个负数。

int sprintf(char * _s,const char* _format,...)

sprintf功能与printf类似,不过它是将字符串格式化输出到它的第一个参数所指定的字符串数组中。

由于它是输出到字符数组,所以会存在数组大小不足或者传递参数非法(后面要学的格式化漏洞),导致格式化后的字符溢出,任意内存读写,堆栈破坏被修改返回地址等,所以推荐使用snprintf函数来代替这个不安全的函数。ps:(哈哈哈这样我们就不好挖洞了)

int fprintf(FILE* _s,const char* _format,...)

fprintf功能与printf类似,但是它的输出流是(FILE*)中。

这个流可以是标准输出(stdout)、标准错误(stderr)、或者是文件(FILE* fd)。

所以理论printf可能是调用frpitnf来实现的。

printf参数

接下来的中点:格式化输出的参数。

printf函数族的格式化参数属性相同,下面以printf为例讲解字符串格式舒心。

printf格式化控制属性格式如下:

type(类型)

type是格式控制字符的类型,为必选项。在printf中会根据类型对应的格式去栈中读取对应大小的数据,(如果读取不到,就会把栈数据泄露出来了。)

这里的n要注意记一下,格式化漏洞会用到x和p也非常常用,s则用于打印字符串

flags(标志)

flags用于规定输出样式。例如我们有时需要对齐打印多个数字,但是数字的长度并不是固定的,此时可以用flag参数进行设置。

#include <stdio.h>
int main()
{
    //利用flags对齐每个数字。
    printf("左对齐每个数字:\n");
    printf("%-04d\n%-04d\n%-04d\n%-04d\n",
          	1,
            12,
            123,
            1234);
    printf("右对齐每个数字:\n");
    printf("%4d\n%4d\n%4d\n%4d\n",
           1,
           12,
           123,
           1234);
    return 0;
}

flags支持参数如下:

number(宽度)

字符宽度有固定和可变两种类型。固定宽度为在类型前面加一个数字表示宽度:

printf("number is %08d\n",1234);

可变宽度类型是指在格式化的宽度可以由一个变量来控制指定,在程序中使用一个星号(*)进行占位,然后在参数中指定宽度。

printf("number is %0*d",8,1234);

precision(精度)

精度的属性格式只有一个,对于不同类型的效果不同。具体描述见下图:

#include <stdio.h>
int main()
{
    //整数
    printf("int:%.4d\n",123); //因为长度不够4,所以会被截断前面用0来填充。
    //浮点数
    printf("float:%.2f\n",3.1415926);
    printf("float:%.3f\n",1.23);
    //字符串
    printf("string:%.6s\n","hellohacker!");
    return 0;
}

length(类型长度)

类型长度用于修饰type(类型)的长度。

比如在打印一个uint64_t类型的无符号整形数字时,应该使用%llu来进行格式化输出。

#include <stdio.h>
#define LLONG_MIN -9223372036854775808
#define LLONG_MAX 9223372036854775807
int main()
{
    //ll表示long long
    //llu表示unsigned long long
    printf("long long:%lld\n",LLONG_MIN);
    printf("unsigned long long:%llu\n",LLONG_MIN);
    return 0;
}

n$(参数字段)

我看到有些题目中会有n$ n代表数字这种控制符,这个其实和控制宽度的*差不多,也是在参数中控制的。

#include <stdio.h>

int main(void) {
    //1$代表参数"a" -->第一个参数的意思
    //*代表宽度
    //3$代表参数"10" -->第3个参数的意思
    //输出右对其10空格,并且输出字符串a.
    //后面以此类推。
    printf("%1$*3$s\n", "a", "b", 10, 20);
    printf("%1$*4$s\n", "a", "b", 10, 20);
    printf("%2$*3$s\n", "a", "b", 10, 20);
    printf("%2$*4$s\n", "a", "b", 10, 20);
    return 0;
}

格式化字符串漏洞

格式化字符串漏洞从2000年左右开始流行起来,几乎在各种软件中都能见到它的身影,随着技术的发展,软件安全性的提升,如今它在桌面端已经比较少见了,但在物联网设备 IoT上依然层出不穷。

#include <stdio.h>
void main()
{
    printf("%s %d %s %x %x %x %3$s","Hello World!",233,"\n");
}

我们输入的参数只有三个,但是格式化字符串中还有3个%x,%3$s不用管它,它就是换行的意思。

ps:(图片纠正下,不是泄露出了栈地址,是泄露出栈的值)

//leak.c 泄露变量1 2 3题目

#include <stdio.h>
void main()
{
        char hello[]="hello";
        int a=1,b=2,c=3;
        printf("%s %d %s %x %x %x %x %x %x %x %x %3$s","Hello World!",23333,"\n");
}

继续来看个例子:

#include <stdio.h>
void main()
{
    //字符数组,50字节空间。
    char buf[50];
    
    //让用户输入任何数据,大小50字节。
    fgets(buf,sizeof(buf),stdin);
    
    //输出用户输入的任何数据
    printf(buf);
}

这个例子相比上面的,省去了printf参数个数,只有一个printf参数,哈哈哈不过他同样存在漏洞。

我们用pwndbg来详细复现下漏洞。

格式化字符串漏洞原因:

这里总结下出现格式化字符串漏洞的原因:根本的原因是调用printf函数族的时候,因为格式字符串要求的参数个数和实际的参数格式不匹配导致去堆栈中取数据,导致泄漏出堆栈数据。

还有是因为程序员对用户输入过滤不严格导致,正常用户可能根本不会去输入这个格式控制符这种奇怪的字符串,但是因为程序员忽略了黑客这类人员。

对过滤内容不严格导致格式化字符串漏洞的产出,其实这也有点像SQL注入、XSS等这类Web漏洞原理,都是由于没有过滤用户输入造成的。

漏洞利用

接下来学习格式化字符串漏洞真正在实际中的应用,比如CTF比赛等等。

对于格式化字符串漏洞的利用主要有:

  • 使程序崩溃(测试漏洞是否存在)
  • 栈数据泄露(栈数据读)
  • 栈数据覆盖(栈数据写)
  • 任意地址内存泄露(任意读)
  • 任意地址内存覆盖(任意写)

使程序崩溃(测试)

本文中所使用的链表定义如下所示:

# Definition for singly-linked list.
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
// Definition for singly-linked list.
public class ListNode {
  int val;
  ListNode next;
  ListNode() {}
  ListNode(int val) { this.val = val; }
  ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}

LeeCode 203: 移除链表元素

题目描述:

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回新的头节点

标签: 链表,递归

时间复杂度:O(N)

建立模型:

  1. 移除非头节点:通过前一节点的next属性指向被移除节点的next节点即 pre.next = cur.next
  2. 移除头节点:直接将head后移一位即 head = head.next
  3. 为了统一上面两种操作,创建一个虚拟头节点,其next属性指向head,这样所有节点的移除都被归类为非头节点
  4. 返回虚拟头节点的next域

代码实现:

# Python3 实现
def removeElement(self, head: ListNode, val: int) -> ListNode:
    virtual_head = ListNode(val=0, next=head)
    pre, cur = virtual_head, head

    while cur is not None:
        if cur.val == val:
            pre.next = cur.next
        else:
            pre = cur
        cur = cur.next

    return virtual_head.next
// Java 实现
public ListNode removeElements(ListNode head, int val) {
  ListNode virtualHead = new ListNode(0, head);
  ListNode pre = virtualHead;
  ListNode cur = head;
  
  while (cur != null) {
    if (cur.val == val)
      pre.next = cur.next;
    else
      pre = cur;
    cur = cur.next;
  }
  return virtualHead.next;
}

LeeCode 707: 设计链表

题目描述:

设计链表的实现,可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。

在链表中实现这些功能:

  • get(index): 获取链表中第 index 个节点的值。如果索引无效,则返回-1
  • addAtHead(val): 在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点
  • addAtTail(val): 将值为 val 的节点追加到链表的最后一个元素
  • addAtIndex(index, val): 在链表的 index 位置添加值为 val 的节点。如果 index 的长度等于链表的长度,则将该节点添加到链表的末尾;如果 index 大于链表长度,则不会插入节点;如果 index 小于0,则在头部插入节点
  • deleteAtIndex(index): 如果索引 index 有效,则删除链表中在 index 位置的节点

建立模型:

  1. 考虑使用单链表实现
  2. 需要初始化头节点和链表长度
  3. 按功能添加代码

代码实现:

# Python3 实现
class MyLinkedList:
    def __init__(self):
        self.size = 0
        self.head = None
    
    def get(self, index: int) -> int:
        if index >= self.size:
            return -1
        temp = self.head
        for _ in range(index):
            temp = temp.next
        return temp.val
    
    def addAtHead(self, val: int) -> None:
        node = ListNode(val, None)
        if self.head is None:
            self.head = node
        else:
            temp = self.head
            self.head = node
            self.head.next = temp
        self.size += 1
    
    def addAtTail(self, val: int) -> None:
        node = ListNode(val, None)
        if self.head is None:
            self.head = node
        else:
            temp = self.head
            while temp.next:
                temp = temp.next
            temp.next = node
        self.size += 1
    
    def addAtIndex(self, index: int, val: int) -> None:
        if index > self.size:
            print("Add: Index out of range!")
            return
        if index == self.size:
            self.addAtTail(val)
        elif index <= 0:
            self.addAtHead(val)
        else:
            pre = self.head
            for _ in range(index - 1):
                pre = pre.next
            cur = pre.next
            
            # 插入Node
            node = ListNode(val, None)
            pre.next = node
            node.next = cur
            self.size += 1
        return
    
    def deleteAtIndex(self, index: int) -> None:
        if index < 0 or index >= self.size:
            print("Delete: Index out of range!")
            return
        if index == 0:
            self.head = self.head.next
        else:
            pre = self.head
            for _ in range(index - 1):
                pre = pre.next
            cur = pre.next
            
            # 删除cur节点
            pre.next = cur.next
        
        self.size -= 1
        return

LeeCode 206: 反转链表

题目描述:

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

标签:链表,递归

时间复杂度:O(N)

建立模型:

  1. 定义两个指针 previous=head,current=head.next
  2. 将current指针的next节点保存在temp中
  3. 翻转previous,current的前后关系
  4. 更新previous,current指向的节点

代码实现:

# Python3 实现
def reverseList(self, head: ListNode) -> ListNode:
    # 空链表或只有一个节点的链表翻转还是它自己
    if not head or not head.next:
        return head
    
    previous, current = head, head.next
    previous = None
    while current:
        temp = current.next
        current.next = previous
        
        # 更新 previous, current节点
        previous = current
        current = temp
    return previous
// Java 实现
public ListNode reverseList(ListNode head) {
  if (head == null || head.next == null) {
    return head;
  }
  
  ListNode previous = head;
  ListNode current = head.next;
  previous.next = null;
  
  while (current != null) {
    ListNode temp = current.next;
    current.next = previous;
    
    previous = current;
    current = temp;
  }
  
  return previous;
}

LeeCode 24: 两两交换链表中的节点

题目描述:

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即只能进行节点交换)。

题目解释:

  • 若链表节点个数为偶数,则每两个节点交换即(1, 2), (3, 4), ..., (N-1, N)
  • 若链表节点个数为奇数,则前N-1个节点每两个交换,最后一个节点不交换即(1, 2), (3, 4), ..., (N-2, N-1), (N)

建立模型:

  1. 定义两个指针 previous=virtual_head,current=head
  2. 将要与current交换的节点保存在following中
  3. 交换两个相邻的节点
  4. 更新previous,current节点

代码实现:

本文中所使用的链表定义如下所示:

# Definition for singly-linked list.
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
// Definition for singly-linked list.
public class ListNode {
  int val;
  ListNode next;
  ListNode() {}
  ListNode(int val) { this.val = val; }
  ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}

LeeCode 203: 移除链表元素

题目描述:

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回新的头节点

标签: 链表,递归

时间复杂度:O(N)

建立模型:

  1. 移除非头节点:通过前一节点的next属性指向被移除节点的next节点即 pre.next = cur.next
  2. 移除头节点:直接将head后移一位即 head = head.next
  3. 为了统一上面两种操作,创建一个虚拟头节点,其next属性指向head,这样所有节点的移除都被归类为非头节点
  4. 返回虚拟头节点的next域

代码实现:

# Python3 实现
def removeElement(self, head: ListNode, val: int) -> ListNode:
    virtual_head = ListNode(val=0, next=head)
    pre, cur = virtual_head, head

    while cur is not None:
        if cur.val == val:
            pre.next = cur.next
        else:
            pre = cur
        cur = cur.next

    return virtual_head.next
// Java 实现
public ListNode removeElements(ListNode head, int val) {
  ListNode virtualHead = new ListNode(0, head);
  ListNode pre = virtualHead;
  ListNode cur = head;
  
  while (cur != null) {
    if (cur.val == val)
      pre.next = cur.next;
    else
      pre = cur;
    cur = cur.next;
  }
  return virtualHead.next;
}

LeeCode 707: 设计链表

题目描述:

设计链表的实现,可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。

在链表中实现这些功能:

  • get(index): 获取链表中第 index 个节点的值。如果索引无效,则返回-1
  • addAtHead(val): 在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点
  • addAtTail(val): 将值为 val 的节点追加到链表的最后一个元素
  • addAtIndex(index, val): 在链表的 index 位置添加值为 val 的节点。如果 index 的长度等于链表的长度,则将该节点添加到链表的末尾;如果 index 大于链表长度,则不会插入节点;如果 index 小于0,则在头部插入节点
  • deleteAtIndex(index): 如果索引 index 有效,则删除链表中在 index 位置的节点

建立模型:

  1. 考虑使用单链表实现
  2. 需要初始化头节点和链表长度
  3. 按功能添加代码

代码实现:

# Python3 实现
class MyLinkedList:
    def __init__(self):
        self.size = 0
        self.head = None
    
    def get(self, index: int) -> int:
        if index >= self.size:
            return -1
        temp = self.head
        for _ in range(index):
            temp = temp.next
        return temp.val
    
    def addAtHead(self, val: int) -> None:
        node = ListNode(val, None)
        if self.head is None:
            self.head = node
        else:
            temp = self.head
            self.head = node
            self.head.next = temp
        self.size += 1
    
    def addAtTail(self, val: int) -> None:
        node = ListNode(val, None)
        if self.head is None:
            self.head = node
        else:
            temp = self.head
            while temp.next:
                temp = temp.next
            temp.next = node
        self.size += 1
    
    def addAtIndex(self, index: int, val: int) -> None:
        if index > self.size:
            print("Add: Index out of range!")
            return
        if index == self.size:
            self.addAtTail(val)
        elif index <= 0:
            self.addAtHead(val)
        else:
            pre = self.head
            for _ in range(index - 1):
                pre = pre.next
            cur = pre.next
            
            # 插入Node
            node = ListNode(val, None)
            pre.next = node
            node.next = cur
            self.size += 1
        return
    
    def deleteAtIndex(self, index: int) -> None:
        if index < 0 or index >= self.size:
            print("Delete: Index out of range!")
            return
        if index == 0:
            self.head = self.head.next
        else:
            pre = self.head
            for _ in range(index - 1):
                pre = pre.next
            cur = pre.next
            
            # 删除cur节点
            pre.next = cur.next
        
        self.size -= 1
        return

LeeCode 206: 反转链表

题目描述:

https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%85%AC%E5%8F%B8%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E7%BD%91%E5%9D%80%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E7%BD%91%E5%9D%80%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E7%BD%91%E7%AB%99%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%E7%BD%91%E7%AB%99%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%A8%B1%E4%B9%90%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E6%96%B0%E7%99%BE%E8%83%9C%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E7%BD%91%E5%9D%80%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E7%BD%91%E7%AB%99%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E7%BD%91%E5%9D%80%5Fxbs561.com
house.china.com.cn/sousuo/%E6%96%B0%E7%99%BE%E8%83%9C%E5%BC%80%E6%88%B7%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E7%BD%91%E7%AB%99%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E6%96%B0%E7%99%BE%E8%83%9C%E5%BC%80%E6%88%B7%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E7%BD%91%E7%AB%99%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E9%93%B6%E9%92%BB%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E7%BD%91%E5%9D%80%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%BC%80%E6%88%B7%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E7%BD%91%E7%AB%99%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E7%BD%91%E5%9D%80%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E9%93%B6%E9%92%BB%E5%9B%BD%E9%99%85%E5%BC%80%E6%88%B7%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E7%BD%91%E7%AB%99%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E7%BD%91%E5%9D%80%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%BC%80%E6%88%B7%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E7%BD%91%E5%9D%80%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E7%BD%91%E5%9D%80%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E7%BD%91%E7%AB%99%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E8%85%BE%E9%BE%99%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E7%BD%91%E5%9D%80%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E7%BD%91%E7%AB%99%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E8%85%BE%E9%BE%99%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E8%85%BE%E9%BE%99%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E5%8D%8E%E7%BA%B3%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E5%8D%8E%E7%BA%B3%E7%BD%91%E7%AB%99%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E5%8D%8E%E7%BA%B3%E7%BD%91%E7%AB%99%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%BC%80%E6%88%B7%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E4%B8%8B%E8%BD%BD%E9%93%BE%E6%8E%A5%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
house.china.com.cn/sousuo/%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E6%B8%B8%E6%88%8F%E5%AE%98%E7%BD%91%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E7%9B%B4%E5%B1%9E%E4%BC%9A%E5%91%98%E6%B3%A8%E5%86%8C%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E5%AE%98%E7%BD%91%5Fxbs561.com
house.china.com.cn/sousuo/%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E7%BD%91%E5%9D%80%5Fxbs561.com
https://physics.scu.edu.cn/search?catid=7,8,9,10,11,12,13&travel=true&q=%E5%8D%8E%E7%BA%B3%E5%A8%B1%E4%B9%90%E7%BD%91%E5%9D%80%5Fxbs561.com
https://zhonghua.cloud.gmw.cn/news.htm?q=%E5%8D%8E%E7%BA%B3%E5%A8%B

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 `va_list` 最后添加一个新参数,需要使用 `va_copy` 和 `va_arg` 函数。`va_copy` 函数可以创建一个新的可变参数列表,然后使用 `va_arg` 函数依次获取可变参数列表中的参数。例如,假设我们已经有一个 `va_list` 对象 `ap`,我们要在其后面添加一个整数参数,并将包含新参数的 `va_list` 传递给其他函数,可以按照以下步骤进行: 1. 使用 `va_copy` 函数创建一个新的 `va_list` 对象 `ap_copy`,例如:`va_list ap_copy; va_copy(ap_copy, ap);` 2. 使用 `va_arg` 函数依次获取 `ap_copy` 中的参数,直到获取到最后一个参数,例如:`int val = va_arg(ap_copy, int);` 3. 添加新的参数到 `ap_copy` 中,例如:`int new_val = 123;` 4. 将包含新参数的 `ap_copy` 传递给其他函数,例如:`other_function(ap_copy);` 5. 使用 `va_end` 函数结束 `ap_copy` 的使用,例如:`va_end(ap_copy);` 完整的代码示例如下: ```c #include <stdarg.h> #include <stdio.h> void other_function(va_list ap) { // 使用 va_arg 函数获取参数 int val1 = va_arg(ap, int); int val2 = va_arg(ap, int); printf("val1=%d, val2=%d\n", val1, val2); } void my_printf(const char *format, ...) { va_list ap; va_start(ap, format); // 输出原有参数 vprintf(format, ap); // 创建新的 va_list 对象 va_list ap_copy; va_copy(ap_copy, ap); // 获取 ap_copy 中的参数,并添加新的参数 int val1 = va_arg(ap_copy, int); int val2 = va_arg(ap_copy, int); int new_val = 123; // 将包含新参数的 ap_copy 传递给其他函数 other_function(ap_copy); // 结束 ap_copy 的使用 va_end(ap_copy); // 输出新参数 printf("%d", new_val); va_end(ap); } int main() { my_printf("%d %d ", 1, 2); return 0; } ``` 上述代码中,`my_printf` 函数首先输出原有的参数,然后创建一个新的 `va_list` 对象 `ap_copy`,获取 `ap_copy` 中的参数并添加新的参数,最后将包含新参数的 `ap_copy` 传递给 `other_function` 函数,并输出新参数。完整的输出结果为:`1 2 val1=1, val2=2 123`。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值