1、自学教材 第8章 指针,回答以下问题:
- 变量、内存单元和地址之间是什么关系? 在程序中声明一个变量并使用地址作为该变量的值。不同类型的变量在内存中占用不同大小的储存单元。
- 如何定义指针变量,怎样才能使用指针变量? 指针变量被定义后,必须将指针变量和一个特定的变量进行关联后才可以使用它,也就是说,指针变量也要先赋值再使用,被赋的值应该是地址。
- 什么是指针变量的初始化? 把一个已经定义的变量的地址作为初始化值赋给指针变量。
- 指针变量的基本运算有哪些?如何使用指针操作所指向的变量? 取地址运算、间接访问运算、赋值运算。
- 指针作为函数参数的作用是什么?
- 如何使用指针实现函数调用返回多个值?
- 如何利用指针实现内存的动态分配?
--------------------------------题目分割线---------------------------------
2、设计一个程序计算输入的两个数的和与差,要求自定义一个函数 sum_diff(float op1, float op2, float *psum, float *pdiff),其中 op1 和 op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差。#includeint 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\n",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 的冒泡排序。