• 第九次课大纲


    总结作业二:

          void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?

      编译错误,涉及到指针如何赋初值:指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。那么可将该代码修改如下,消除了error,但是结果是否正确?

     1 #include <stdio.h>
     2 void swap(int *pi,int *pj);
     3 
     4 int main(void) {
     5     int a=5;
     6     int b=8; 
     7     swap(&a,&b);
     8     printf("a=%d,b=%d
    ",a,b);
     9     return 0;
    10 }
    11 
    12 void swap(int* i,int* j){
    13     int *t=i;
    14     *i=*j;
    15     *j=*t;
    16 }
    View Code

         void swap(int *p,int *q){int *m;m=p;p=q;q=m;}为何无法实现交换?

      交换的只是指向,并没有交换数值。

    复习指针与数组:

      (1)定义一个包含有10个整数的数组a:

        int a[10];

      (2)定义一个指针变量p,p指向数组a:

        int *p=a;

        int *p=&a[0];

      (3)引用数组a中第i个元素:

        a[i];

        *(a+i);

        *(p+i);

        p++;*p;

      (4)定义函数fun,参数是数组a,输出数组中各元素的值:

        void fun (int a[10]);

        void fun (int a[]);

        void fun (int *a);

        void fun (int *p);

     1 #include <stdio.h>
     2 
     3 void fun(int * a){
     4     int *q=a;
     5     while((q-a)<10)
     6         printf("%d
    ",*(q++));
     7 }
     8 
     9 int main(){
    10     int a[10]={1,2,3,4,5,6,7,8,9,10};
    11     int *p=a;
    12     printf("%d
    ",p[5]);
    13     fun(p);
    14     return 0;
    15 } 
    View Code

      (5)定义函数inv,将数组a中10个整数按相反顺序存放。(看情况上课时间不够作为课下作业)

    复习指针与字符串:

      (1)定义一个字符串str,初值hello world:

        char str[] = “hello world”;

        char *str = “hello world”;

      (2)修改字符串str的值为Hello World:

      字符数组存的是字符,字符指针存的是字符串在内存中的首地址。 

      (3)定义函数funstr,参数是字符串str,函数输出字符串:

        格式符:%s、%c

        有多种方法,详见第五次课

  • 相关阅读:
    根据类生成数据库连接
    C# 获取动态类中所有的字段
    mysql 基础配置经验
    CSS小笔记
    jquery知识location.search
    Eclipse 启动tomcat 访问主页报错404
    window下安裝redis服務
    用maven创建web工程
    @WebListener 注解方式实现监听
    Dubbo-admin管理平台的安装
  • 原文地址:https://www.cnblogs.com/c-programing-language/p/6604529.html
Copyright © 2020-2023  润新知