首页 > 编程语言 >day3 函数的定义和调用,练习编写简单的程序(记录3)

day3 函数的定义和调用,练习编写简单的程序(记录3)

时间:2023-03-31 18:46:40浏览次数:29  
标签:调用 函数 int void 练习 day3 param 0331

0331.h

#ifndef _0331_H
#define _0331_H
/*******************************************************************
* 文件名称:0331.h
* 功能描述:函数的定义和调用的头文件
* 创建作者:wenjie
* 创建日期:2023/03/31
*******************************************************************/

typedef struct {
	int x;
	int y;
} Point;

//------------------------------------------------------------------
// 函数声明
//------------------------------------------------------------------
/**
 * @brief 计算两个数的和
 *
 * @details 这个函数使用加法运算符计算两个整数之和
 *
 * @param a 第一个加数
 * @param b 第二个加数
 * @return 两个数的和
 */
int add(int a, int b);

/**
 * @brief 指针传递
 *
 * @details 指针传递
 *
 * @param ptr 传入实参地址
 * @return 无
 */
void foo(int *ptr);

/**
 * @brief 引用传递
 *
 * @details 定义函数,使用引用传递
 *
 * @param a
 * @param b
 * @return 无
 */
 // 
void swap(int &a, int &b);

void print_point(Point p);

void print_string(const char *str);

#endif //_0331_H

0331.cpp

/*******************************************************************
* 文件名称:0331.cpp
* 功能描述:函数的定义和调用的实现
* 创建作者:wenjie
* 创建日期:2023/03/31
*******************************************************************/

#include "0331.h"
#include <iostream>


int main() {

	// 调用 add 函数,计算 3 和 5 的和
	int sum = add(3, 5);
	// 打印计算结果
	std::cout << sum << std::endl;

	int x = 1;    //&x为1的门牌号(地址)
	foo(&x);      // 传递实参的地址
	printf("%d\n", x); // 输出 42

	int x2 = 1, y = 2;
	swap(x2, y); // 传递实参的别名
	printf("%d %d\n", x2, y); // 输出 2 1

	Point p = { 1, 2 };
	print_point(p);

	const char *str = "Hello, world!";
	print_string(str);

	return 0;

}

/**
 * @brief 计算两个数的和
 *
 * @details 这个函数使用加法运算符计算两个整数之和
 *
 * @param a 第一个加数
 * @param b 第二个加数
 * @return 两个数的和
 */
int add(int a, int b) {
	return a + b;
}

/**
 * @brief 指针传递
 *
 * @details 指针传递
 *
 * @param ptr 传入实参地址
 * @return 无
 */
void foo(int *ptr) {
	*ptr = 42; // 修改实参的值

}

/**
 * @brief 引用传递
 *
 * @details 定义函数,使用引用传递
 *
 * @param a
 * @param b
 * @return 无
 */
void swap(int &a, int &b) {
	int temp = a;
	a = b;
	b = temp;
}

// 打印结构体成员
void print_point(Point p) {  
	printf("(%d, %d)\n", p.x, p.y);
}

void print_string(const char *str) {
	/*
	是的,你说得没错。在函数内部,可以修改指针本身,但不能修改指针所指向的常量的值。
	在你的代码中,指针 str 是一个形参,它被声明为指向常量字符的指针。这意味着,该指针所指向的字符数组是只读的,不能被修改。
	在函数内部,如果你试图通过指针 str 来修改其所指向的字符串的内容,编译器会发出警告或错误信息。
	而如果你仅仅是修改指针本身的值,那么编译器并不会报错。
	因此,在下面的代码中,指针 str 指向了一个新的字符串常量,但原有的字符串 "Hello, world!" 并没有被修改:
	输出结果应该是 hbashab,而不是 "Hello, world!"。这表明在函数内部,指针 str 确实被修改了,但原始字符串并没有被改变。
	*/
	//str = "hbashab";   
	printf("%s\n", str);
}


标签:调用,函数,int,void,练习,day3,param,0331
From: https://www.cnblogs.com/csdn9389/p/17277174.html

相关文章

  • day3 函数的定义和调用,练习编写简单的程序(记录1)
    一、函数的定义可以分为以下两种:1、函数声明和函数定义分离这种方法将函数声明和函数定义分开,通常在头文件中先声明函数原型,然后在源文件中实现函数定义。例如,头文件example.h中声明了一个函数add:#ifndefEXAMPLE_H#defineEXAMPLE_Hintadd(inta,intb);//声明函......
  • A模块练习题
    mysql练习题1.查找数据库版本号mysql>selectversion();2.查找数据库列表mysql>showtables;3.查看所有用户和权限,找到可以从任意IP地址访问mysql>showgrantsforroot@localhostmysql>selectdistinctconcat('user:''',user,'''@''',......
  • Qt调用摄像头二,Pro版
    本示例,为纯Qt调用摄像头,功能会比版本一要多一点:打开摄像头,设置参数,完整拍照,框选拍照,切换分辨率,旋转,水平镜像,垂直镜像,放大,缩小上一个版本,使用的显示窗口直接显示出摄像头画面,所以可操作性有限,没关系,这个版本使用的另一种方法:打开设备,获取视频帧,自己把视频帧画上去,这样就操作的东......
  • C语言编程练习_查找数组中不重复的数字
    题目描述:给定一个整形数组空间arr,数据中包含两个一样的数字若干,只有一个数字是单独一个。设计一个函数把这个出现一次的数字返回出来。 解决方案一:穷举法:假设arr数组中的每个元素都是重复的。也可能是不重复的(效率差)#include<stdio.h>intfun1(intarr[],intlen){  ......
  • day31 打卡455.分发饼干 376. 摆动序列 53. 最大子数组和
    day31打卡455.分发饼干376.摆动序列53.最大子数组和455.分发饼干455题目链接classSolution{publicintfindContentChildren(int[]g,int[]s){intcount=0;Arrays.sort(g);Arrays.sort(s);intgIndex=0;ints......
  • 好饭不怕晚,Google基于人工智能AI大语言对话模型Bard测试和API调用(Python3.10)
    谷歌(Google)作为开源过著名深度学习框架Tensorflow的超级大厂,是人工智能领域一股不可忽视的中坚力量,旗下新产品Bard已经公布测试了一段时间,毁誉参半,很多人把Google的Bard和OpenAI的ChatGPT进行对比,GoogleBard在ChatGPT面前似乎有些技不如人。事实上,GoogleBard并非对标ChatGPT......
  • 用C#调用Windows API向指定窗口发送按键消息
    用C#调用WindowsAPI向指定窗口发送一、调用WindowsAPI。C#下调用WindowsAPI方法如下:1、引入命名空间:usingSystem.Runtime.InteropServices;2、引用需要使用的方法,格式:[DllImport("DLL文件")]方法的声明;[DllImport("user32.dll")]privatestaticexternboolShow......
  • 使用PHP调用OpenAI ChatGPT API接口
    本文介绍如何使用PHP调用OpenAI的文本完成模型ChatGPT的API接口,同时也包括图片生成模型DALL·E接口的调用。 一、SDK实现OpenAI的PHPSDK实现如下,其中ChatGPT使用的模型为gpt-3.5-turbo,如果已经有ChatGPTPlus,并申请到GPT-4的API权限,可以改为GPT-4的模型。classclass_openai......
  • 用go实现get/post请求调用api
    注册登录首页专栏后端文章详情用go实现get/post请求调用apiHeroine1 发布于2022-09-01 上海  最近的一次demo,相当于一次复习吧,把......
  • TB平台接入API调用商品详情
    API地址:https://api-gw.…….cn/taobao/调用示例:https://api-gw.…….cn/taobao/item_search/?key=&&q=女装&start_price=0&end_price=0&page=1&cat=0&discount_only=&sor......