C语言回滚(三)-指针

#include <stdio.h>
#include <stdlib.h>
//& 地址运算符
//* 间接运算符
// *的作用 当*后面跟一个指针名或地址的时候,
// *给出储存在被指向地址中的数值
int change1(int x, int y);
//int change2(int *x, int *y);
int change2(int *, int *);
//C语言的简洁性允许这样定义

int main(){
int *p;
//定义了一个指针
//p是一个指针,*p是一个int类型的
//指针的用处
int m, n;
scanf_s("%d %d", &m, &n);
change2(&m, &n);
//传递了两个地址
//不同与传递数值;传递数值只是复制了该数据
//不能更改传入数据的值;只能更改复制后的数值
//指针是对原数据的更改
printf("%d %d", m, n);
system("pause");
return 0;
}
int change2(int *x, int *y){
int tmp;
tmp = *x;
//此时要用*x而不是x
//因为此时传入的是地址*x才是被指向的地址中的数值
*x = *y; //*x
*y = tmp;

}
int change1(int x, int y){

int tmp;
tmp = x;
x = y;
y = tmp;
// return x;
//因为只能返回一个值,所以单独使用兑换函数不能达到目的
//这时候就需要指针
}

时间: 2024-10-09 22:15:40

C语言回滚(三)-指针的相关文章

git版本回滚

先说今天遇到的问题,看到一个config.php的配置文件一直在修改的状态下,但是和远程的config.php是不一致的,我不需要提交它,但是看它在 modified的状态下,很不爽,想删除它,git   rm  config.php,然后git push了下,结果不仅把本地的config.php干掉了,把远程的config.php也给干掉了,,原来这个git rm有这样的功效,而且我 删除的不只是这一个文件,还有n个文件. 想到要回滚到最近的一次提交.做这个工作前,提醒下,在本地直接把代码备份

解决Hsqldb指针只能单向移动,不能回滚问题(.first())

Class.forName("org.hsqldb.jdbcDriver").newInstance(); Connection con = java.sql.DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:9001/hadoop", "sa", ""); Statement stmt1 = con.createStatement(ResultSet.TYPE

c语言mysql数据库事务开始、提交、回滚范例

1. 事务提交模式修改:修改数据库提交模式为0[手动提交] memset ( sql, 0x00, sizeof( sql ) ); memcpy ( sql, "set autocommit=0;", 17 ); if( mysql_query( sock, sql ) ){ sprintf( g_acTrcMsg, "关闭自动提交模式失败[%d][%s]", mysql_errno( sock ), mysql_error( sock ) );TRCLOG1 r

oracle回滚机制深入研究

这篇文章主要描述oracle的回滚机制,篇幅可能较长,因为对于oracle的回滚机制来说,要讨论和描述的实在太多,只能刷选自己认为最有意义的一部分进行深入研究和分享 一.我们来看一个DML语句的处理过程描述 update undotest set object_type='VIEW' where object_type='PROCEDURE'; 检查shared pool中是否存在相同的语句,如果存在,重用执行计划,执行扫描运算,如果不存在,执行硬解析生成执行计划 根据执行计划中的扫描运算,检查

Git撤销&amp;回滚操作

开发过程中,你肯定会遇到这样的场景: 场景一: 糟了,我刚把不想要的代码,commit到本地仓库中了,但是还没有做push操作! 场景二: 彻底完了,刚线上更新的代码出现问题了,需要还原这次提交的代码! 场景三: 刚才我发现之前的某次提交太愚蠢了,现在想要干掉它! 撤销 上述场景一,在未进行git push前的所有操作,都是在"本地仓库"中执行的.我们暂且将"本地仓库"的代码还原操作叫做"撤销"! 情况一:文件被修改了,但未执行git add操作

不小心merge后的回滚操作

虽然有四个方法,但我们项目中使用方法一和二比较合适,不会产生新的commit,并且简单粗暴 方法一,新分支覆盖 ①首先两步保证当前工作区是干净的,并且和远程分支代码一致方法一,删除远程分支再提交 $ git co currentBranch $ git pull origin currentBranch $ git co ./ ②备份当前分支(如有必要) $ git branch currentBranchBackUp ③恢复到指定的commit hash $ git reset --hard

6.代码回滚

1.代码修改并提交 我们已经成功地添加并提交了一个helloWorld.txt文件,现在,是时候继续工作了. 于是,我们继续修改helloWorld.txt文件,改成如下内容: $ vi helloWorld.txt $ cat helloWorld.txt hello world ! first:di yi ci xiugai! 现在,运行`git status`命令看看结果: $ git status On branch dev Changes not staged for commit:

spring事务没回滚

最近遇见一个问题,用spring管理实务,在service层处理数据,保存数据时出现异常,但没有回滚,检查了一下,发现是因为我用try catch将异常进行捕获了,没有抛出导致的:默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚. 处理发法一:捕获异常后,新生成runtimeexcetpion: try { userDao.save(user); userDao.update(user); } catch (Exception e) { logger.info("

Spring中@Transactional事务回滚实例及源码

一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员.但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了.这时候我们希望如果成员删除失败了,之前删除的部门也取消删除.这种场景就可以使用@Transactional事物回滚. 二.checked异常和unc