作业 5 指针应用1

1、自学教材 第8章 指针,回答以下问题:

  • 变量、内存单元和地址之间是什么关系?   在程序中声明一个变量并使用地址作为该变量的值。不同类型的变量在内存中占用不同大小的储存单元。
  • 如何定义指针变量,怎样才能使用指针变量?    指针变量被定义后,必须将指针变量和一个特定的变量进行关联后才可以使用它,也就是说,指针变量也要先赋值再使用,被赋的值应该是地址。
  • 什么是指针变量的初始化?    把一个已经定义的变量的地址作为初始化值赋给指针变量。
  • 指针变量的基本运算有哪些?如何使用指针操作所指向的变量?   取地址运算、间接访问运算、赋值运算。
  • 指针作为函数参数的作用是什么?   
  • 如何使用指针实现函数调用返回多个值?    
  • 如何利用指针实现内存的动态分配?    

--------------------------------题目分割线---------------------------------
2、设计一个程序计算输入的两个数的和与差,要求自定义一个函数 sum_diff(float op1, float op2, float *psum, float *pdiff),其中 op1 和 op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差

#include<stdio.h>
int main(void)
{
    void sum_diff(float op1, float op2, float *psum, float *pdiff);   /*自定义函数*/
    float op1,op2;
    float psum,pdiff;

    printf("Enter 2 number:");
    scanf("%f%f",&op1,&op2);
    sum_diff(op1,op2,&psum,&pdiff);        /*调用函数*/
    printf("*psum=%.2f,*pdiff=%.2f
",psum,pdiff);
    return 0;
}
void sum_diff(float op1,float op2,float *psum,float *pdiff)
{
    *psum=op1+op2;
    *pdiff=op1-op2;
}


--------------------------------题目分割线---------------------------------
3、两个相同类型的指针变量能不能相加?为什么?
--------------------------------题目分割线---------------------------------
4、重做教材P88 例8-9,要求使用选择排序算法
--------------------------------题目分割线---------------------------------
5、在使用 scanf()函数时,输入参数列表需要使用取地址操作符&,但当参数为字符数组名时并没有使用,为什么?如果在字符数组名前加上取地址操作符&,会发生什么?
--------------------------------题目分割线---------------------------------
6、语言不允许用赋值表达式直接对数组赋值,为什么?
--------------------------------题目分割线---------------------------------
7、重做教材P88 例8-9,要求使用动态内存分配的方法实现例8-9 的冒泡排序。

原文地址:https://www.cnblogs.com/danson-daisy/p/3411544.html