指针指向字符串,函数指针,多功能函数调用
来源:互联网 发布:淘宝质量好的男装店 编辑:程序博客网 时间:2024/06/06 21:42
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//3 函数指针
/*
//3.2 利用传递函数指针实现通用多功能函数调用
int max(int a, int b){
return a > b ? a : b ;
}
int min(int a, int b){
return a > b ? b : a ;
}
int Co(int a,int b, int (*pfun)(int , int)){
return pfun(a,b);//传进来是哪个函数,pfun就指向哪个函数
}
//指针接收函数地址条件:3同:返回类型 、参数个数、参数类型
int main(){
int a = 10;
int b = 20;
int result = Co(a,b,max);
printf("result = %d\n",result);
return 0;
}
/*
//3.1函数指针定义
int max(int a, int b){
return a > b ? a : b ;
}
//指针接收函数地址条件:3同:返回类型 、参数个数、参数类型
int (*pfun)(int , int );
int main(){
int a = 10;
int b = 20;
pfun = &max;
int result = (*pfun)(a,b);
//简化版
pfun = max;//函数名时函数的地址
int result1 = pfun(a,b);
return 0;
}
//2 字符指针 指向字
//指针赋值:更改指针的指向 p=str;
//数组不能更改数组名 ar=br
int main(){
char *str = "abcdef";
//string
char *p = "Hello world";//定义一个指针变量p,存储字符串地址;而字符串是存储在常量区的。无法通过p【i】对其改变。
p = str;
char ar[] = {'a','b','c','\0'};//4个字节,有结束符\0存在。
ar[0] = 'h';//ar[]是自己开辟的空间,存储在栈中,而不是存在静态区域
//ar = br;//报错
return 0;
}
/*
int main(){
//string
char *p = "Hello world";//定义一个指针变量p,存储字符串地址;而字符串是存储在常量区的。无法通过p【i】对其改变。
// p[0] = 'h' ;//系统崩溃
char ar[] = {'a','b','c','\0'};//4个字节,有结束符\0存在。
ar[0] = 'h';//ar[]是自己开辟的空间,存储在栈中,而不是存在静态区域
printf("%s\n",p);
return 0;
}
/* 1
int main(int argc, char *argv[]) {
char ar[5] = "abcd";//5个字节,有结束符\0存在。
printf("%s\n",ar);//abc
return 0;
/*
//不需要加\0,系统会给字符数组自动分配结束符的空间。
int main(int argc, char *argv[]) {
char ar[] = "abcd";//5个字节,有结束符\0存在。
printf("%s\n",ar);//abc
return 0;
/*
//
int main(int argc, char *argv[]) {
char ar[] = {'a','b','c','\0'};//4个字节,有结束符\0存在。
ar[0] = 'h';//ar[]是自己开辟的空间,存储在栈中,而不是存在静态区域
printf("%s\n",ar);//abc
return 0;
}*/
//
int main(int argc, char *argv[]) {
char ar[] = {'a','b','c'};//3个字节,没有结束符\0存在。
printf("%s\n",ar);//abc0
return 0;
}
#include <stdio.h>
#include <string.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//3 函数指针
/*
//3.2 利用传递函数指针实现通用多功能函数调用
int max(int a, int b){
return a > b ? a : b ;
}
int min(int a, int b){
return a > b ? b : a ;
}
int Co(int a,int b, int (*pfun)(int , int)){
return pfun(a,b);//传进来是哪个函数,pfun就指向哪个函数
}
//指针接收函数地址条件:3同:返回类型 、参数个数、参数类型
int main(){
int a = 10;
int b = 20;
int result = Co(a,b,max);
printf("result = %d\n",result);
return 0;
}
/*
//3.1函数指针定义
int max(int a, int b){
return a > b ? a : b ;
}
//指针接收函数地址条件:3同:返回类型 、参数个数、参数类型
int (*pfun)(int , int );
int main(){
int a = 10;
int b = 20;
pfun = &max;
int result = (*pfun)(a,b);
//简化版
pfun = max;//函数名时函数的地址
int result1 = pfun(a,b);
return 0;
}
//2 字符指针 指向字
//指针赋值:更改指针的指向 p=str;
//数组不能更改数组名 ar=br
int main(){
char *str = "abcdef";
//string
char *p = "Hello world";//定义一个指针变量p,存储字符串地址;而字符串是存储在常量区的。无法通过p【i】对其改变。
p = str;
char ar[] = {'a','b','c','\0'};//4个字节,有结束符\0存在。
ar[0] = 'h';//ar[]是自己开辟的空间,存储在栈中,而不是存在静态区域
//ar = br;//报错
return 0;
}
/*
int main(){
//string
char *p = "Hello world";//定义一个指针变量p,存储字符串地址;而字符串是存储在常量区的。无法通过p【i】对其改变。
// p[0] = 'h' ;//系统崩溃
char ar[] = {'a','b','c','\0'};//4个字节,有结束符\0存在。
ar[0] = 'h';//ar[]是自己开辟的空间,存储在栈中,而不是存在静态区域
printf("%s\n",p);
return 0;
}
/* 1
int main(int argc, char *argv[]) {
char ar[5] = "abcd";//5个字节,有结束符\0存在。
printf("%s\n",ar);//abc
return 0;
/*
//不需要加\0,系统会给字符数组自动分配结束符的空间。
int main(int argc, char *argv[]) {
char ar[] = "abcd";//5个字节,有结束符\0存在。
printf("%s\n",ar);//abc
return 0;
/*
//
int main(int argc, char *argv[]) {
char ar[] = {'a','b','c','\0'};//4个字节,有结束符\0存在。
ar[0] = 'h';//ar[]是自己开辟的空间,存储在栈中,而不是存在静态区域
printf("%s\n",ar);//abc
return 0;
}*/
//
int main(int argc, char *argv[]) {
char ar[] = {'a','b','c'};//3个字节,没有结束符\0存在。
printf("%s\n",ar);//abc0
return 0;
}
阅读全文
0 0
- 指针指向字符串,函数指针,多功能函数调用
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- 指向函数指针(一)
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- 指向函数指针
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- 指向函数的指针
- JSTL标准标签库之核心标签(三)
- Glide 实现圆形图片 并动态旋转
- BZOJ 2435: [Noi2011]道路修建 树的遍历-_-
- React-Native 0.43.4 undefined is not an object (evaluating '_props[registrationName]') 正确的解决姿势
- ubuntu 设置ssh连接
- 指针指向字符串,函数指针,多功能函数调用
- lesson6.7System和Runtime
- linux线程学习(3)
- Arcgis---坐标转换API
- Ubuntu16下编译安装Open Babel2.4.1和python绑定
- JavaScript入门基础--数据类型编程练习
- PHP自动捕获Exception,Fatal error等错误和异常
- WPF TabControl 样式
- leetcode 8(week 13)