c++指针 c指针 改变值

1.

#include <iostream>

using namespace std;

void move(int *p)    ====>void move(*&p)
{

p++;
}

int main()
{
    int attr[]={1,2,3,4,5};
    int *p=attr;
    cout<<*p<<endl;
//    p++;
    move(p);
    cout<<*p<<endl;
    return 0;
}

为什么第二次打印 值不变 ,指针也是变量,传指针是可以改变值,但你这里 :改变的是指针值(地址),没有改变指针指向的值

换成move(*&p) 可破

2.c语言写的这个

#include <stdio.h>
void move(int* p) 
{

++p;   =======>(*p)++;
   printf("%d \n",*p);
 }
                
   int main()
   {   
       int attr[]={1,2,3,4,5};
       int *p=attr;
   printf("%d \n",*p);
              //    p++;
       move(p);
   printf("%d \n",*p);
    return 0;
 }

这样的话。

时间: 2024-10-12 03:40:25

c++指针 c指针 改变值的相关文章

3、list改变指针还是改变值

list1改变指针还是改变值 1.python中相同数据类型的list和string可以直接用“+”相连 “+”只是扩展了list长度,并不是每个元素相加. lst1 = ['a','c'] lst2 = ['d','g'] lst = lst1 + lst2 s1 = "adc" s2 = "agf" s3 = s1 + s2 反转列表 Def rev(lst): lt = [] for i in lst: lt = [i] + lt return lt 与jav

指针和引用、值传递和引用传递

1.指针和引用 指针是一个变量,它存储的是内存地址:引用和原来的变量是同一个,对引用修改会改变原变量,而修改指针只是修改了指向的内存 可以有const指针.但是没有const引用:指针可以多级int **p;引用只有1级 int &&p不合法 指针可空,引用必须初始化:指针可以修改,可以指向别的变量:引用不能修改,只能是那个变量的引用 2.值传递和引用传递 值传递,会创建变量的一个临时副本,对它修改不会改变原变量 引用传递,因为引用是原变量的一个别名,对引用修改会改变原值 指针作为函数参数

Android For JNI(三)——C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值

Android For JNI(三)--C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值 C中比较难的这一块,大概就是指针了,所以大家还是多翻阅一下资料,当然,如果只是想了解一下,看本篇也就够了,不过我也尽量陈述的很详细 一.指针 要说指针,其实通俗易懂的话来说,他应该是保存内存地址的一个变量,我们来看一下小例子 #include <stdio.h> #include <stdlib.h> main(){ //int 变量 int i ; i = 5; //打印i的值

函数指针与指针函数返回值的区别

指针函数是指带指针的函数,即本质是一个函数.函数返回类型是某一类型的指针定义: 类型标识符 *函数名(参数表)eg: int *f(x,y);函数指针是指向函数的指针变量,即本质是一个指针变量.int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋给指针f */ 函数指针与指针函数返回值的区别,码迷,mamicode.com

打印指针指向的地址值

废话不多说,直接上错误代码: static void print_cpu_src(uint8_t * src,int stride){ int i,j; printf("Magnum cpu src addr == %p, stride ==%d:\n",&src,stride); for (i = 0; i < 11; ++i) { printf("\n"); for (j =0; j < 4; ++j) { printf("%d ,

bool、int、float、指针变量与“零值”比较的if语句

if语句是C++/C语言中最简单.最常用的语句,然而很多程序员用隐含错误的方式写if语句.本节以"与零值比较"为例,展开讨论. 这里是"零值"而不是"0" 4.3.1布尔变量与零值比较 [规则4-3-1]不可将布尔变量直接与TRUE.FALSE或者1.0进行比较. 根据布尔类型的语义,零值为"假"(记为FALSE),任何非零值都是"真"(记为TRUE).TRUE的值究竟是什么并没有统一的标准.例如Visua

区别&lt;指针、指针的地址、指针的值&gt;

指针是指向某一个类型(内置的或者自定义的)的对象的变量. 通常我们说的“指针”,意指它所指向的对象的地址,也就是“指针的值”: 但是指针本身也是变量,也对应内存中的一块地方,因此“指针的地址”就是存储这个指针变量的内存的地址: 结合代码来看: /************************************************************************* > File Name: newd.cpp > Author: zeyuhu > Mail: [e

【转】让你不再害怕指针——C指针详解(经典,非常详细)

前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧: [cpp] view plain copy int p; //这是一个普通的整型变量 int *p; //首先从P 处开始,先与*结合,所以说明P 是一个指针,

(C/C++)区别:数组与指针,指针与引用

1.数组跟指针的区别 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建.数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变. 指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存.指针远比数组灵活,但也更危险. 数组和指针特点的简单比较: 数组 指针 保存数据 保存地址 直接访问数据 间接访问数据,先取得指针的内容,然后以它为地址取得数据 用于存储数目固定且类型相同的数据 通常用于动态数据结构 编译器自动分配和删除