C基础知识(5):指针--传递指针给函数&返回指针的函数

时间:2023-03-09 01:02:47
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;
}