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

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

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

 #include <stdio.h>

 // 传递指针给函数&返回指针的函数
// (1) 传递一个int型指针给函数,并在函数内改变这个值
void add(int *base, int num);
// (2) 数组作为参数求和
long sum1(int *arr, int size);
long sum2(int *arr, int size);
// (3) 返回一个指向char类型变量的指针(小写字母变成大写字母)
char * upper(char *str); int main() {
int a = ;
add(&a, ); //
printf("%d\n", a);
int arr[] = { , , , , };
long b = sum1(arr, ); //
printf("%d\n", b);
long c = sum2(arr, ); //
printf("%d\n", c);
char str[] = "hello!"; // HELLO!
char *dest;
dest = upper(str);
printf("%s\n", dest);
return ;
} void add(int *base, int num) {
*base = *base + num;
}
long sum1(int *arr, int size) {
int i;
long tmp = ;
for (i = ; i < size; i++) {
tmp = tmp + *arr;
arr++;
}
return tmp;
}
long sum2(int *arr, int size) {
int i;
long tmp = ;
for (i = ; i < size; i++) {
tmp += arr[i];
}
return tmp;
}
char * upper(char *str) {
// 先保留最初的地址。
char *dest;
dest = str;
while (*str != '\0') {
if ('a' <= *str <= 'z') {
*str -= ;
}
str++;
}
return dest;
}

C基础知识(5):指针--传递指针给函数&返回指针的函数的更多相关文章

  1. 程序员之---C语言细节22(函数返回指针注意事项&lt;悬空指针&gt;、查看进程能够分配的内存大小)

    主要内容:函数返回指针注意事项<悬空指针>.查看进程能够分配的内存大小 #include <stdio.h> char * favorite_fruit() { static ...

  2. C++从函数返回指针

    C++ 允许您从函数返回指针.为了做到这点,必须声明一个返回指针的函数,如下所示: int * myFunction() { . . . } 另外,C++ 不支持在函数外返回局部变量的地址,除非定义局 ...

  3. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  4. 林大妈的JavaScript基础知识(三):JavaScript编程(2)函数

    JavaScript是一门函数式的面向对象编程语言.了解函数将会是了解对象创建和操作.原型及原型方法.模块化编程等的重要基础.函数包含一组语句,它的主要功能是代码复用.隐藏信息和组合调用.我们编程就是 ...

  5. C语言函数返回指针方法

    1.将函数内部定义的变量用static修饰 由于static修饰的变量,分配在静态内存区(类似于全局变量区),函数返回时,并不会释放内存,因此可以将要返回的变量加static修饰. int *test ...

  6. c++ 函数返回指针 及用法

    #include<string> #include<iostream> using namespace std; string fun1(int a) { string str ...

  7. C++基础知识-派生类、调用顺序、访问等级、函数遮蔽

    一.派生类的概念 类之间有一种层次关系,有父亲类,有孩子类. 车这个类,当成父类(也叫基类.超类),派生出卡车.轿车,他们属于孩子类(子类.派生类) 继承:有父亲类,有孩子类,构成了层次关系.继承这种 ...

  8. 函数返回指针类型(strchr函数)

    #include<stdio.h> #include<string.h> char *mystrchr(char *s,char c) { while(*s) { if(*s ...

  9. C语言指针传递详解

    传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问,要在某个函数中修改数据,需要用指针传递数据,当数据是需要修改的指针的时候,就要传递指针的指针,传递参数(包括指针)的时候,传递 ...

随机推荐

  1. QTP(6)

    一.检查点 1.标准检查点(Standard Checkpoint) 作用:检查对象的属性值是否正确 文本框对象:text 预期值 单选按钮对象:checked ON/OFF 下拉框对象:Select ...

  2. D - Yet Another Problem On a Subsequence CodeForces - 1000D (DP,组合数学)

    D - Yet Another Problem On a Subsequence CodeForces - 1000D The sequence of integers a1,a2,-,aka1,a2 ...

  3. 第七章 路由 77 路由-使用children属性实现路由嵌套

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  4. 《Python基础教程》第五章:条件、循环和其他语句

    在Python中赋值运算和比较运算是可以连接的,运算符可以连在一起使用,如:0<age<100 ==运算符判定两个对象是否相等,is判定两者是否等同(同一个对象) 断言,在错误条件出现时直 ...

  5. Quartus 18 新手使用教程

    最近需要做个小作品,用到了Quartus 18,本人采用vhdl语言进行的开发,过程如下. 1.点击新建一个工程 ​ 2.选择工程保存的路径,填写工程名称 ​ 3.选择工程类型为空的工程 ​ 4.不添 ...

  6. 解决boot项目创建后启动日志报错

    <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</ ...

  7. [Python之路] 多种方式实现并发Web Server

    下面我们使用Python来实现并发的Web Server,其中采用了多进程.多线程.协程.单进程单线程非阻塞的方式. 一.使用子进程来实现并发Web Server 参照 https://www.cnb ...

  8. Listview操作

    设置 listView1.VirtualMode = true;   listView1.RetrieveVirtualItem += ListView1_RetrieveVirtualItem; p ...

  9. input 唤起键盘后遮住页面元素

    var windheight = $(window).height(); /*未唤起键盘时当前窗口高度*/ $(window).resize(function(){ var docheight = $ ...

  10. WPF之Treeview实现MVVM双向绑定

    Treeview分别有两个数据模板HierarchicalDataTemplate(层级数据模板)和DataTemplate(数据模板),分别应用于生成子数据项和普通数据项. 在使用过程中,如果对两个 ...