c++里面函数和指针的问题
#include<iostream>
using namespace std;
int *max(int a)
{
    a=6;
    return &a;
}
int main()
{
    int a(5),*p;
    p=max(a);
    cout<<*p;
    system("pause");
    return 0;
}

这是一个简单的程序,输出结果是6,但是如果改成下面这样

#include<iostream>
using namespace std;
int *max(int a)
{
    a=6;
    return &a;
}
int main()
{
    int a(5),*p;
    p=max(a);
    cout<<*p<<'\n';
    system("pause");
    return 0;
}

输出结果就变成10了,甚至改成下面

#include<iostream>
using namespace std;
int *max(int a)
{
    a=6;
    return &a;
}
int main()
{
    int a(5),*p;
    p=max(a);
    cout<<a;
    cout<<*p;
    system("pause");
    return 0;
}

p的结果又不正确了,请问这是为什么><

0

查看全部2条回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C语言 函数指针和指针函数及Main()函数
正文 先来看看两者的定义以及说明。 指针函数 定义 指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。 声明格式为:类型标识符 *函数名(参数表) 这似乎并不难理解,再进一步描述一下。 看看下面这个函数声明: int fun(int x,int y); 这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个 int 类型,...
c语言指针经典问题(交换两个数字)
1.互换两个数字: # include&amp;lt;stdio.h&amp;gt; void g(int * p,int * q) { int t; //如果要互换*p和*q的值,则t必须定义为int, t = * p; //不能定义为int*,否则会有语法错误. * p = * q; * q = t; } int main() { ...
【编程语言】C语言指针(包括:指针与数组、指针与字符串、指针与函数)
指针概述 指针的概念 在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,例如int型占4个内存单元,char型占1个内存单元。为了正确地访问这些内存单元,必须为每个内存单元编上号,根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这...
关于指针作为函数返回值丢失值的问题
记录个小问题:定义了一个结构体:struct vertex//定义顶点结构体 { int v_id;//顶点编号 vector&amp;lt;string&amp;gt; attr;//顶点属性 vector&amp;lt;vertex*&amp;gt; edge;//边 int dist = INT_MAX;//用于计算最短距离时使用,表示距离查询顶点的最短距离 };接着定义了图:vertex ...
C中双重指针的使用的易错点
写blog之前,看了很多CSDN的文章,都表示坚持写blog对一个程序员来说是很好的习惯,我以前也觉得写blog也只是浪费时间和精力,觉得自己弄懂了就好,然而事实上过一段时间后碰到相同的问题却还是需要时间去回忆和查找记录,这也就让我产生了开始写blog的想法。这是我的第一篇blog,的写的不好之处请大家见谅。 言归正传,在c的使用中能用到双重指针的地方不多,其中一个地方就是函数传指针却没有改变指针
子函数中为指针分配空间
#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;malloc.h&amp;gt; typedef struct node{ int data; struct node *next; }Node,*Linklist; void my_malloc(Linklist *node) { if(*node == NULL){ *node =...
C语言函数传参:如何实现指针参数引用传递
编程问题
c总结3 --- C语言中的strstr函数(指针学习2)
当自己在学习这个函数的时候很纠结,现在将自己总结的整理如下: strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。 int main(void) { char *str1 = "Borland International", *str2 = "nation", *ptr; ptr
C语言中“指针”作为“函数参数”时的注意事项
C语言中“指针”作为“函数参数”时的注意事项
C语言 在被调函数中改变指针变量值的方法
先看一段代码: #include   void foo(char *p) {    p = "after foo()"; }      void main() {    char *p = "before foo()";    foo(p);         cout } 如果你指望函数foo能帮你改变p的值,那你就错了。因为指针也是变量,它在函数调用过程中也是传
(Ⅰ)C语言用指针实现冒泡排序、strcat、strcmp、strstr库函数
使用指针冒泡排序 为了同数组冒泡排序进行区别,所以我们要用全指针实现冒泡排序 在一般的冒泡排序中 第一层for循环 规定要进行的趟数,循环条件为t&amp;lt;数组长度-1 第二层循环 从第一个元素开始进行相邻元素的交换,直到交换到上次已经交换结束的元素数,通过i&amp;lt;数组长度-1-t来决定每趟中要交换的次数 通过指针冒泡排序 如果指针也按照上述的方法来进行交换,那么会额...
C/C++复习:指针引出奇数因子
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年4月25日 *版 本 号:v1.0 * *问题描述:求出x的所有奇数因子 *输入描述:一个整数 *程序输出:输入的整数的奇因子个数,以及这些奇因子 */ #include using n
用指针调用实现strcpy的功能
#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt;#define N 100char my_strcpy(char *p1,char *p2) //指针变量!*p1、*p2{   while(*p2 != '\0') //终止条件 { *p1 = *p2; p1++; p2++; //p1、p2的地址往后移 } *p1=...
C语言函数返回类型为指针时的四个问题
1.先看程序: #include char  *returnStr() {            char  *p = “tigerjibo”;            return  p; } int  main() {            char*str;            str =returnStr();  
C语言指针作为函数参数传递学习(一)
1. 数组或者一维指针做函数形参 1.1传入的指针为NULL 比如下面的例子,很多人都会理解错: #include &amp;amp;lt;stdio.h&amp;amp;gt; void test(char *string) { string = &amp;quot;hello world&amp;quot;; } int main() { char *str = NULL; test(str); printf(&amp;quot;str=%s\n&amp;quot;,str); ...
用指针解决约瑟夫问题
其实本文中的链表并不规范,只适用于本题,还有鄙人第一次发文,请多多指教 #include #include using namespace std; class J { public:  J(){};  string name;  J *pre;//前一个人  J *next;//后一个人 }; void Joseph(J *head,int n) {
关于子函数变量生命周期以及指针的一些问题
C语言的变量都有自己的生存周期,如果超过这个周期,那么它所占用的地址空间就会被释放掉。不再受到保护。因此主函数中要用到的变量不能再子函数里面申明。
C语言函数传指针时究竟传的是什么?
C语言函数传指针时究竟传的是什么?我们知道指针指中的内容是一个内存的地址,只有对指针进行解引用(*p),计算机才会指针所指向地址中的内容。在进行函数间调用时传递指针经常会造成段错误(也就是内存错误),其实主要是空指针引起的,或者指向了错误的位置。首先看如下一段代码#include <stdio.h> #include <stdlib.h> void init(int *p);int main(voi
C语言中指针传递问题
C语言中指针传递问题 要求:用C语言通过调用函数实现两个值的交换 例如:输入5,9 —– 输出9,5 不能到达预期的结果的代码 #include&amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;gt; void main() { void swap(int *p1, int *p2); int a,b; int *pointer_1,*pointer_2; scan...
C# 调用C++DLL(函数参数包含指针)
C#调用C++DLL,C++DLL中的函数参数包含指针。 绝对可用。
Problem C: 指针引出奇数因子
指针引出奇数因子
函数参数为指针,在函数内没有必要改变指针地址,改了也不起作用,因为即便是指针,也是值传递指针!
eg:void con(const char* p)//const保证不改变指针指向内容,但不保证不改变指针本身{ char *pa="dddd"; p=pa;//改变指针无意义}int main(int argc, char* argv[]){ char *p="aaa"; con(p); cout}
C语言--局部变量作为指针返回值的问题
代码: #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; int* getStu(int x, int y) {         int i = x+y;         return &amp;amp;i; } int main() {         int x = 2, y = 3;         int *s = getStu(x, y);...
C语言指针实现循环报数问题(简单约瑟夫环问题)
题目描述: 报数:有n个人围成一圈,按照顺序从1到n编好号。从第一个人开始报数,报到x(x&amp;gt;1)的人退出圈子,下一个人从1开始重新报数,报到x的人退出圈子。如此下去,直到留下最后一个人。问留下来的人的编号。试编写相应程序。 分析:利用指针的赋0后的特性解决, 赋0,即空指针,就是不指向任何对象,相当于 NULL地址为0的地址是不允许读写的,这是操作系统的保护机制, 所以约定用地址0...
函数指针&指针函数&结构体调用函数
结构体通过指针调用函数的方法在项目中比较实用:上层函数实现,底层调用从而实现底层通知上层的回调功能!!! 在此说一下函数指针和指针函数这两个概念,下面先说一下两者的区别。 再者就是说一下结构体是如何通过函数指针的方式调用函数的。
函数形参中指针的指针
一、指针的指针     int *pi;      int **ppi;   //这是一个指向指针的指针,注意有两个*号      ppi=&pi;      解释:int **ppi;--申明了一个指针变量ppi,这个ppi是用来存储(或称指向)一个int * 类型指针变量的地址。      &pi那就是取pi的地址,ppi=&pi;就是把pi的地址赋给了ppi。即将地
C语言——字符串指针-strcmp
C语言中的strcmp是怎么实现的? 其实我们可以用自己的办法重新写一个函数来实现strcmp的效果。 #define _CRT_SECURE_NO_WARNINGS #include #include void Compare(char Array1[],char Array2[],int n) { int i; for (i = 0; i < n; i++) { if (Arra
c语言指针作为函数的参数
  在c语言中实参和形参之间的数据传输是单向的“值传递”方式,也就是实参可以影响形参,而形参不能影响实参。指针变量作为参数也不例外,但是可以改变实参指针变量所指向的变量的值。 #include &amp;lt;stdio.h&amp;gt; void swap1(int x,int y),swap2(int *px,int *py),swap3(int *px,int *py); int main(vo...
Python中指针式传递的函数遇到的问题
最近在尝试通过 multiprocessing 把原来的计算核心改为通过多进程实现的并行程序,但碰到了一个非常奇怪的问题,经过一些时间的排查,终于找到了问题所在。虽然问题本身很简单,但也许也有一定典型性,尤其是对编程新手而言,因此在这里用最简单的模型重现一下。首先从下面一段非常简单的程序开始:def main(): x = [1, 2, 3, 4, 5] foo(x) pri
娓娓道来c指针 (0)c语言的梦魇:c指针
c语言中有一个重点:c指针。它也是一个难点。当然,这是一句废话:重点往往也是难点。在c标准中,对指针的定义是这样的: 指针的类型是derived from其它类型,也就是说指针的类型是由它指向的类型决定的; 指针是一种reference类型,即引用类型; c指针似乎很难理解,以至于有人指出:掌握了c指针,就掌握了c语言的精髓。本系列就来聊聊c指针,要想弄懂c指针。光就指针本身进行理解,还不够。 因为指针的本质就一句话:指针就是地址。这句话大多数学过c语言的人都明白,但对很多使用指针的场景仍然
C语言函数传递指针参数的问题
一个问题是,我们想用一个函数来对函数外的变量v进行操作,比如,我想在函数里稍微改变一下这个变量v的值,我们应该怎么做呢?又或者一个常见的例子,我想利用swap()函数交换两个变量a,b的值,我们应该怎么做呢(好吧,博主是觉得这个问题十分经典)。 如果你真的理解C语言中【函数】这个工具的本质,我想你稍微仔细的思考一下,可能就不会来查看博主的这篇文章,对函数来说,它所传递的任何参数仅仅是原来参数的一...
C语言之指向函数的指针
这里介绍了关于指向一维数组的指针, 相关内容可以参考该文. 本文将简要介绍指向函数的指针. 如何声明一个指向函数的指针? void print(int num); // 声明函数 void (*funptr)(int) = print; // 声明指向函数的指针, 该函数接受一个int参数, 返回void, 并用print函数的地址初始化 函数指针类型的通用形式: 返回类型 (...
C语言指针作为形参的一些问题
指针作为形参肯定有很多都不清楚其中具体的原理,我也是最近摸清了些门道: 下面就用一些例子来给大家说明: void myMalloc(char *s) //我想在函数中分配内存,再返回 { s=(char *) malloc(100); } void main() { char *p=NULL; myMalloc(p); //这里的p实际还是NULL
函数指针,指针函数,返回值为指针的函数
在学习C语言时,一个比较容易混淆的概念就是函数指针、指针函数、返回值为指针的函数。本文将对这三个概念进行区分。指针函数就是返回值为指针的函数,两个本质上是同一事物,只是叫法不同。函数指针就是一个指向函数的指针,本质上是一个指针,只是这个指针指向的对象是函数,而不是一般意义上的存储对象。
c语言的一级指针和二级指针作为函数参数,链表,malloc中的分配等等总结
主要内容: 1、一级指针和二级指针 2、函数指针传递的例子 3、什么时候需要传递二级指针? 4、二级指针在链表中的使用 1、一级指针和二级指针 一级指针:即我们一般说的指针,就是内存地址; 二级指针:指向指针的指针,就是地址的地址; 如: int a=1; int *p=&amp;amp;a;  // p为a变量的地址,通过*p可以得到a的值 int **q=&amp;amp;p;   //...
gets输入指针
C语言中: #include int main() { char *ch; ch=(char*)malloc(10*sizeof(char));//10可以根据自己的需要修改,这里10代表10个字符,英文字母每个占一个字符,汉字每个站2字符 gets(ch); puts(ch); delete ch; return 0; } c++中: #include #inclu
c语言的重要概念
C语言的指针,指针与数组、函数的关系,函数的调用方式,指针的分类
关于 printf函数 ,当参数是指针变量时,要不要带*号
这需要根据你的printf函数的参数来决定。 例一:printf(  “%d”,*p ); printf中的%d参数要求你提供一个整数,而p是个指针,它指向的是整数,这时用*p表示p指向的整数。如果你用p的话,将把指针的地址取值进行输出。 例二:printf(  “%s”,p ); printf中的%s参数要求你提供一个指针,而p就是一个指针变量,可以直接写变量名p 所以,参数使用时要满...
C语言指针,基础内容,幻灯片版教学
C语言指针,基础内容,幻灯片版教学 指针的概念 指针变量 指针与数组 指针与函数 返回指针值的函数
C语言——通过调用函数改变形参指针 改变实参指针问题
1,按值传递,在调用函数的时候,将指向数据的指针实参传递到调用函数的形参中去 2,单向传递,形参中的指针子函数改变地址后不能传给主调函数,变量同样指向了我们希望处理的数据,然后对形参的指针变量指向的数据进行各种希望的处理,在调用函数运行完成后,各个形参指针变量进行了释放。子函数改变地址后不能传给主调函数。 注:红字为摘抄部分 下面是测试代码.c: #include #include
文章热词 双目视觉问题 特征点问题 相机标定问题 最优化问题 统计学稳健估计问题
相关热词 c++较基础的指针问题 c++ 里面有没有结构体函数 c++ 函数 指针 区块链问题 乌班图里面没有python