首页 > 编程语言 > 详细

从C到C++

时间:2020-10-12 12:50:31      阅读:28      评论:0      收藏:0      [点我收藏+]

函数指针

基本概念

程序运行期间,每个函数都会占用一段连续的内存空间。而函数名为函数所占内存区域的起始地址(入口地址)。将入口地址赋给一个指针变量,使指针变量指向该函数。然后通过变量就可以调用这个函数。这种指向函数的指针就是“函数指针”。

定义形式

类型名(* 指针变量名)(参数类型1,参数类型2),例如int (*pf)(int, char);

使用方法

#include<stdio.h>
void PrintMin(int a, int b)
{
	if (a < b)
	{
		printf("%d", a);
	}
	else
	{
		printf("%d", b);
	}
}

int main() 
{
	void(*pf)(int, int);
	int x = 4, y = 5;
	pf = PrintMin;
	pf(x, y);
	return 0;
}

函数指针与qsort库函数

技术分享图片

其中,比较函数需要自己编写

技术分享图片

  • 实例

技术分享图片

#include<stdio.h>
#include<stdlib.h>
int MyCompare(const void * elem1, const void * elem2) {
	unsigned int *p1, *p2;
	p1 = (unsigned int*)elem1;
	p2 = (unsigned int*)elem2;
	return (*p1 % 10) - (*p2 % 10);
}

# define NUM 5
int main() 
{
	unsigned int an[NUM] = {8,123,11,10,4};
	qsort(an, NUM, sizeof(unsigned int), MyCompare);
	for (int i = 0; i < NUM; i++) { 
		printf("%d ", an[i]);
	}
		
	return 0;
}

命令行参数

win+R 输入Cmd
使用命令行启动的C语言程序的main函数具有以下格式:

int main(int argc, char * argv[])
{...}

argc:启动程序时,命令行参数的个数。C/C++规定,可执行程序程序本身的文件名,也算一个命令行参数,因此,argc的值至少是1。
argv[]:指针数组,每个元素为char *类型指针,分别指向一个命令行参数。当命令行参数内部有空格时,用双引号将其括起来。

  • 实例
#include<stdio.h>

# define NUM 5
int main(int argc,char * argv[]) 
{
	for (int i = 0; i < argc; i++)
	{
		printf("%s\n", argv[i]);
	}
	return 0;
}

将其release,得到XXX.exe文件,然后在控制台窗口敲.\XXX para1 para2 s.txt 5 "hello world",输出

\XXX.exe
para1
para2
s.txt
5
hello world

从C到C++

原文:https://www.cnblogs.com/rookieveteran/p/13801568.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!