zoukankan      html  css  js  c++  java
  • C基础知识(5):指针--传递指针给函数&返回指针的函数

    下面从3个代码例子分别讲述以下2个知识点:

    (1) 传递指针给函数(参数类型为指针)

    (2) 返回指针的函数(返回类型为指针)

     1 #include <stdio.h>
     2 
     3 // 传递指针给函数&返回指针的函数
     4 // (1) 传递一个int型指针给函数,并在函数内改变这个值
     5 void add(int *base, int num);
     6 // (2) 数组作为参数求和
     7 long sum1(int *arr, int size);
     8 long sum2(int *arr, int size);
     9 // (3) 返回一个指向char类型变量的指针(小写字母变成大写字母)
    10 char * upper(char *str);
    11 
    12 int main() {
    13     int a = 100;
    14     add(&a, 10); // 110
    15     printf("%d
    ", a);
    16     int arr[5] = { 3, 5, 6, 2, 9 };
    17     long b = sum1(arr, 5); // 25
    18     printf("%d
    ", b);
    19     long c = sum2(arr, 5); // 25
    20     printf("%d
    ", c);
    21     char str[] = "hello!"; // HELLO!
    22     char *dest;
    23     dest = upper(str);
    24     printf("%s
    ", dest);
    25     return 0;
    26 }
    27 
    28 void add(int *base, int num) {
    29     *base = *base + num;
    30 }
    31 long sum1(int *arr, int size) {
    32     int i;
    33     long tmp = 0;
    34     for (i = 0; i < size; i++) {
    35         tmp = tmp + *arr;
    36         arr++;
    37     }
    38     return tmp;
    39 }
    40 long sum2(int *arr, int size) {
    41     int i;
    42     long tmp = 0;
    43     for (i = 0; i < size; i++) {
    44         tmp += arr[i];
    45     }
    46     return tmp;
    47 }
    48 char * upper(char *str) {
    49     // 先保留最初的地址。
    50     char *dest;
    51     dest = str;
    52     while (*str != '') {
    53         if ('a' <= *str <= 'z') {
    54             *str -= 32;
    55         }
    56         str++;
    57     }
    58     return dest;
    59 }
  • 相关阅读:
    Android性能优化典范(转)
    java分形树
    android通过pc脚本执行sqlite3脚本
    针对JD-GUI
    三星的中低端机使用AsyncTask的问题
    Github简明教程(转)
    android 5.0 (lollipop)源码编译环境搭建(Mac OS X)
    排队接水
    幂次方
    2020/4/12
  • 原文地址:https://www.cnblogs.com/storml/p/7778275.html
Copyright © 2011-2022 走看看