C基础知识(5):指针--传递指针给函数&返回指针的函数
下面从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):指针--传递指针给函数&返回指针的函数的更多相关文章
- 程序员之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程能够分配的内存大小)
主要内容:函数返回指针注意事项<悬空指针>.查看进程能够分配的内存大小 #include <stdio.h> char * favorite_fruit() { static ...
- C++从函数返回指针
C++ 允许您从函数返回指针.为了做到这点,必须声明一个返回指针的函数,如下所示: int * myFunction() { . . . } 另外,C++ 不支持在函数外返回局部变量的地址,除非定义局 ...
- 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数
[源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...
- 林大妈的JavaScript基础知识(三):JavaScript编程(2)函数
JavaScript是一门函数式的面向对象编程语言.了解函数将会是了解对象创建和操作.原型及原型方法.模块化编程等的重要基础.函数包含一组语句,它的主要功能是代码复用.隐藏信息和组合调用.我们编程就是 ...
- C语言函数返回指针方法
1.将函数内部定义的变量用static修饰 由于static修饰的变量,分配在静态内存区(类似于全局变量区),函数返回时,并不会释放内存,因此可以将要返回的变量加static修饰. int *test ...
- c++ 函数返回指针 及用法
#include<string> #include<iostream> using namespace std; string fun1(int a) { string str ...
- C++基础知识-派生类、调用顺序、访问等级、函数遮蔽
一.派生类的概念 类之间有一种层次关系,有父亲类,有孩子类. 车这个类,当成父类(也叫基类.超类),派生出卡车.轿车,他们属于孩子类(子类.派生类) 继承:有父亲类,有孩子类,构成了层次关系.继承这种 ...
- 函数返回指针类型(strchr函数)
#include<stdio.h> #include<string.h> char *mystrchr(char *s,char c) { while(*s) { if(*s ...
- C语言指针传递详解
传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问,要在某个函数中修改数据,需要用指针传递数据,当数据是需要修改的指针的时候,就要传递指针的指针,传递参数(包括指针)的时候,传递 ...
随机推荐
- Sereja and Brackets CodeForces - 380C (树状数组+离线)
Sereja and Brackets 题目链接: CodeForces - 380C Sereja has a bracket sequence s1, s2, ..., *s**n, or, in ...
- Summer training #6
A:水.看0多还是1多就行 B:模拟二进制运算 ,,卡了好久 不应该 #include <bits/stdc++.h> #include <cstring> #include ...
- Js之DateFormat工具类
/** * 对Date的扩展,将Date转化为指定格式的String * 年(y).季度(q).月(M).日(d).小时(h).分(m).秒(s)可以用1-2个占位符 * 示例: * FormatDa ...
- POJ-3974-Palindrome(马拉车)
链接: http://poj.org/problem?id=3974 题意: Andy the smart computer science student was attending an algo ...
- pro git 读书笔记 1
Git 1 - Getting Started Git 的特点 Git 存储每个版本的快照:其他 VCS(版本控制系统) 存储两个版本的变化之处 好处参考 Git 分支章节 Git 几乎所有操作都是本 ...
- 题解 【SDOI2009】HH的项链
题面 解析 这题本来莫队可以过的. 然而,对于某些加强的数据,莫队就得吸氧了.. 所以,本题解还将介绍另一种算法——树状数组. 首先,莫队就不用讲了吧(毕竟只是板子). 那么,开始进入正题(似乎有点啰 ...
- removeProp(name)
removeProp(name) 概述 用来删除由.prop()方法设置的属性集 随着一些内置属性的DOM元素或window对象,如果试图将删除该属性,浏览器可能会产生错误.jQuery第一次分配un ...
- javaScript高级3笔记2
DOM0级事件 <img src = "../..." onclick = "function()" /> // 处理事件 elment.onc ...
- LabVIEW:可执行文件运行缺少运行库问题
造冰箱的大熊猫@cnblogs 2018/5/11 上周调试设备网口犯了一个低级错误,今天又搞出一个笑话 目标机上没有LabVIEW开发环境,于是在开发机上将VI打包成可执行程序.在目标机上运行可执行 ...
- javascript类型判断最佳实践
javascript有8种数据类型 值类型 Number Null Undefined String Symbol Boolean BigInt 引用类型 Object Array Function ...