150312——开始学习指针

  • 引入指针学习,依旧是那个几乎每本书上都会提到的交换两个数数值的程序:

     1 #include<stdio.h>
     2 void interchange(int *m,int *n);
     3 int main()
     4 {
     5     int x=1,y=3;
     6
     7     interchange(&x,&y);  //向函数传送地址
     8     printf("x=%d,y=%d\n",x,y);
     9     return 0;
    10
    11 }
    12
    13 void interchange(int *m,int *n)
    14 {
    15     int temp;
    16
    17     temp=*m;
    18     *m=*n;
    19     *n=temp;
    20 }

    指针p是一个数值为地址的变量,*p即为存储在指针所示地址中的数值。

上述程序就解决了不使用指针时函数里return无法同时返回两个量的问题。

时间: 2024-10-10 20:17:01

150312——开始学习指针的相关文章

C语言学习——指针

指针 在学习指针之前,首先应该了解一些东西: 内存是什么? 从硬件形态上说,内存就是一条形物理设备,从功能上讲,内存是一个数据仓库,程序内在执行前都要被装载到内存中,才能被中央处理器执行.内存是由按顺序编号的一系列存储单元组成的,在内存中,每个存储单元都由唯一的地址,通过地址可以方便地在内存单元中存储信息.在计算机中,一切信息都是以二进制数据的形式体现的,每个内存单元的容量是1B,即8bit(8个0.1二进制位). 1.取地址运算符&, 间接运算符* &运算符:  取地址运算符,&

学习指针变量占用内存字节数相关心得

在学习设置数据收发缓冲区时,做以下实验 void main () { LPBYTE m_data=new BYTE[16]; memcpy(m_data,"example",sizeof(m_data)); string str=" "; str[0]=m_data[3]; cout<<str<<endl; } 函数memcpy(m_data,"example",sizeof(m_data));将“example”在内存中

Golang 才是学习指针的安全之地,关于指针的二三事

感谢平台分享-http://bjbsair.com/2020-04-10/tech-info/53305.html 本章学习目标 学会声明和使用指针 理解指针和随机访问存储器(RAM)之间的关系 了解指针的使用时机 当我们在街上散步的时候,常常会看到一些用于指引方位的地址和街道标识.你可能曾经遇到过这样一种情况,一家大门紧闭的商店在它的橱窗上贴出了道歉标语"抱歉,本店已乔迁新址!",并在标语的下方给出新的地址.指针就有点儿像这个给出新地址的标语,它会把你指引至不同的地址. 指针是指向另

学习指针遇到的问题

第一个问题: 上边这个图中打印出来的ptr1的地址和&ptr1的地址分别是什么的地址? 我理解的ptr1的地址就是ptr1这个指针变量自己的地址,&ptr1的地址就是ptr1这个指针指向的地址,也就是这个程序中urn这个字符数组的首地址,是这样吗? 如果我的理解是正确的话,是不是就是代表ptr1 = urn:这句话把urn的地址赋给指针ptr1就可以理解为,ptr1这个指针本身的地址不变,ptr1这个指针指向urn的首地址. 第二个问题: 在书中讲const关键字的时候提到了const关键

传智播客视频学习 ----&gt;&gt;&gt;&gt; 指针 int *p, p是什么,&amp;p是什么,*p是什么

int *p = NULL; p:指针p所指向的内存的地址 *p:指针p所指向的内存地址的值 &p:指针p的地址 1 #ifndef _CODE_POINTER_DEMO01_H_ 2 #define _CODE_POINTER_DEMO01_H_ 3 4 #include <stdlib.h> 5 #include <string.h> 6 #include <stdio.h> 7 8 int main(){ 9 10 int a = 10; 11 12 ch

c语言学习-指针探究

1:指针定义格式:格式:变量类型 *变量名用途:指针变量用于储存地址(only),也就是根据地址值,访问对应的存储空间. 注意.int *p 只能指向int类型的数据: 例: int a = 20; int *p; p = &a; //既p代表地址,*p代表值 //这时的* 代表指针变量p指向的存储空间,目的:改变p代表的地址指向的空间. 任何指针类型,都是占用8字节的存储空间. 指针的长度,是要根据指向的数据的地址,来取多少长度的数据,所以为防止取错数据需要和指向数据的类型一致. 注意:指针+

C++学习---指针相关

1.指向 “指针对象” 的 ”指针” 一般指针 int *p1,ival =42; p1 = &ival; 或者 int ival =42,*p1=&val; 代表一个指针对象指向一个同类型的地址区域,如果想要得到值用解析符*即可 *p1 //p1存储的是一段内存地址,*符号解析该地址等到值42 指向 指针对象 的 指针 上图是指向int对象的指针,而现在的对象则是指针对象. int i = 42,*p1,**p2 ; p1 = &i; p2 = &p1; 需要使用**是有

go语言学习--指针数组和数组指针

数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的长度. 如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组.p=a;        //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]p++;       //该语句执行过后,也就是p=p+1;

C++学习---指针与数组

1.数组 由具体详相同数据类型的数据元素按照一定顺序排列而成的集合,由字符数组.常量数组.实数数组和指针数组等. 1.1一维数组 //一维数组的定义 类型 数组名[常量表达式]: float arry[10]; //其中常量表达式为数组大小,不能含有变量 //一维数组的存储 数组名为数组首元素地址,后续元素按照下标顺序连续存储 int a[6]; //说明6个int型数据按照顺序依次排列 //一维数组的初始化 int a[5] = {1,2,3,4,5}; int a[5] = {1,2,3}/