• 嵌入式培训学习历程第十四天


           指针啊,,----------

      1. 指针 == 地址

        注意 : 位域不可以查看地址

      2. #define 新类型名 旧类型名

        #typedef  旧类型 新类型;

        注意 : 可以使用typedef重定义指针名  typedef int* INT32_t  INT32_t a, b, c;  正确

      3.间接引用 * &

      重点 :  0号地址空间不允许访问

      4. 指针类型

        间接引用时, 向后跳过的字节个数。

        指定+-操作时跳过的字节数

      5. 指针操作的三个步骤

        指针变量的定义

        指针有效的初始量

        指针通过间接应用操作访问数据

      6. 传值 :将变量本身作为参数进行传递

       传引用 : 将变量的地址值作为参数进行传递

      7.指针作为函数参数,传值还是传引用取决于函数功能

        传值 : 形参变,实参不变

        传引用 : 形参,实参都变

      8.传出参数(做返回值)

        (1).参数为指针在函数内部进行间接引用

        (2).函数调用前, 该参数指向的空间存储无意义

        (3).函数调用结束后,该参数有意义,并且作为函数的传出值返回。

      重点 :: 指针作为函数返回值,不能返回局部变量的首地址

        char arr[1024];  地址 ; p = arr = &arr = &arr[0];

      今天的英语 : address (地址)   variable(变量)  pointer(指针)  

    1.使用指针完成数组元素的存数及数据的反向输出,并求和

     1 #include <stdio.h>
     2 #include <time.h>
     3 
     4 void input_num(int *);
     5 void sum_num(int *, int *);
     6 void output_num(int *);
     7 
     8 int main(int argc, char *argv[])
     9 {
    10     int num[1024] = {0};
    11     int sum = 0;
    12 
    13     input_num(num);
    14     sum_num(num, &sum);
    15  
    16     printf("----------------------------------out--------------------------------------------
    ");
    17     output_num(num);
    18 
    19     printf("sum = %d.
    ", sum);
    20     return 0;
    21 }
    22 
    23 void output_num(int *out)
    24 {
    25     int i;
    26     for(i = 9; i >= 0; i --)
    27     {
    28         printf("%d    ", *(out + i));
    29     }
    30     printf("
    ");
    31 
    32     return ;
    33 }
    34 
    35 void sum_num(int *sum, int *sum_sum)
    36 {
    37     int i;
    38     for(i = 0; i != 10; i ++)
    39     {
    40         *sum_sum += *(sum + i);
    41     }
    42 
    43     return ;
    44 }
    45 
    46 void input_num(int *input)
    47 {
    48     srand(time(NULL));
    49 
    50     int i;
    51     for(i = 0; i != 10; i ++)
    52     {
    53         *(input + i) =  rand() % 100;
    54     }
    55 
    56     return ;
    57 }
    shuzu.c

    2.生成26个排列好的英文字母

     1 #include <stdio.h>
     2 #include <time.h>
     3 
     4 void rand_str(char *);
     5 void output_str(char *);
     6 
     7 int main(int argc, char *argv[])
     8 {
     9     char str[1024] = {0};
    10 
    11     rand_str(str);
    12     printf("---------------------------------------------output-------------------------------------------
    ");
    13     output_str(str);
    14 
    15     return 0;
    16 }
    17 
    18 void output_str(char *output)
    19 {
    20     int i;
    21 
    22     for(i = 0; i != 26; i ++)
    23     {
    24         printf("%c ", *(output + i));
    25     }
    26     printf("
    ");
    27 
    28     return ;
    29 }
    30 
    31 void rand_str(char *rand_)
    32 {
    33     srand(time(NULL));
    34 
    35     int i, number = 0;
    36     for(i = 0; i != 26; i ++)
    37     {
    38         for( ; ; )
    39         {
    40             number = rand() % (92 - 65) + 65;
    41             if(i == (number - 65)) {
    42                 *(rand_ + i) = number;
    43                 break;
    44             }
    45         }
    46     }
    47 
    48     return ;
    49 }
    find_A_Z.c

    3.函数实现:删除字符数组中的空格

     1 #include <stdio.h>
     2 
     3 void delete_str(char *);
     4 
     5 int main(int argc, char *argv[])
     6 {
     7     char str[1024];
     8 
     9     printf("Enter character : ");
    10     gets(str);
    11 
    12     printf("After delete----------------------------------------------
    ");
    13     delete_str(str);
    14 
    15     return 0;
    16 }
    17 
    18 void delete_str(char *delete_)
    19 {
    20     int i;
    21     for(i = 0; *(delete_ + i) != ''; i++)
    22     {
    23         if(' ' == *(delete_ + i)) {
    24             continue ;
    25         }
    26         else { 
    27             printf("%c", *(delete_ + i));
    28         }
    29     }
    30     printf("
    ");
    31 }
    delete.c
  • 相关阅读:
    容斥原理
    m元集A到n元集B的满射的个数
    二项式反演公式
    多项式定理
    组合数的基本性质
    Luogu P2408 不同子串个数
    Luogu P5410【模板】扩展 KMP
    Luogu P2336 [SCOI2012]喵星球上的点名
    Luogu P2852 [USACO06DEC]牛奶模式Milk Patterns
    Luogu P4248 [AHOI2013]差异
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3233433.html
Copyright © 2020-2023  润新知