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 }
  • 相关阅读:
    node + express 搭建服务器,修改为自动重启服务器
    在sublime上运行node
    node + express本地搭建服务器,开启一个新的项目
    关于数据库的一些基本操作语句
    8.数据库编程
    2.关于偏函数
    7.多线程编程
    1.关于__call__的很有意思的用法
    6.python中的网络编程
    4.python中常用的魔法方法(长期更新)
  • 原文地址:https://www.cnblogs.com/storml/p/7778275.html
Copyright © 2011-2022 走看看