首页 > 其他分享 >指针(一)

指针(一)

时间:2023-10-08 22:01:17浏览次数:25  
标签:变量 int 运算符 printf 指针 赋值

指针

今日份复习指针变量,指针的自增、自减运算。

  • 指针变量
  • 1.一个变量的地址被称为该指针变量。
    指针变量的定义:
    类型说明 * 变量名
    给一个指针变量赋值有以下两种方法:

    a.定义指针变量的同时进行赋值。

            【例】

              int a;
              int *p=&a;

     b.先定义指针变量,之后再赋值。

【例】int a;

          int *p;

          p=&a;

(如果先定义指针变量之后再赋值,赋值时指针变量前不再加“*”。

2.指针变量的引用

没有初始化的指针变量被称为“野指针”,使用时容易产生错误。应在定义指针变量时就将其初始化为NULL,由于NULL处禁止写入,所有一旦有错误,可以将错误造成的危害降到最小。

【例】交换两个变量

#include<stdio.h>

int main()

{

int a, b,*temp, *p,*q;

printf("请输入a的值:");

scanf_s("%d", &a);

printf("请输入b的值:");

scanf_s("%d", &b);

p = &a;

q = &b;

temp=p;

p = q;

q=temp;

printf("a结果为:%d\n", *p);

printf("b结果为:%d",*q);

return 0;

}

结果为:

指针(一)_赋值


3.运算符

“&”和“*”都是单目运算符。

“&”是取地址符,用于返回一个操作数的地址。“*”是指针运算符,用于返回指定地址内保存的变量值。

“&*p”相当于取变量的地址,“*&p”相当于取变量的值。

  • 指针的自增、自减

指针的自增、自减运算,是按照它所指向的数据类型的直接长度进行增或减。

标签:变量,int,运算符,printf,指针,赋值
From: https://blog.51cto.com/u_15966010/7762729

相关文章

  • 研发三维GIS系统笔记/框架改造/智能指针重构框架-003
    1.使用智能指针重构系统原有的系统都是裸指针,在跨模块与多线程中使用裸指针管理起来很麻烦,尤其是多任务系统中会出现野指针1classCELLTileTask:publicCELLTask2{3public:4CELLQuadTree*_node;5TileId_tileId;6CELL......
  • Go基础之指针
    Go语言中的指针目录Go语言中的指针一、Go语言中的指针介绍1.1指针介绍1.2基本语法1.3声明和初始化1.4Go指针的3个重要概念1.4.1指针地址(PointerAddress)1.4.2指针类型(PointerType)1.4.3指针取值(PointerDereferencing)1.5获取指针的地址和解引用1.6传递指针给函数1.7指......
  • c语言 二维数组指针
    @TOC前言前面我们讲了一维数组指针,今天我们讲一下二维数组指针。一、二维数组指针的定义:概述:二维数组指针的定义就是把一维数组换成二维数组。二维数组的各个元素也都是地址。步骤:inta[2][3]={{1,2,3},{4,5,6}};//定义一个二维数组int(*p)[2][3]=&a;//a是整......
  • C基础-初始指针
    何为指针?可以通过指针找到以其为地址的内存单元。指针就是变量,只不过存放在指针的值被当做地址处理指针和指针类型根据下图我们可知不同指针类型的存储大小是一样的,并根据计算机位数决定的,64位一般是8个字节intmain(){ printf("%d\n",sizeof(char*)); printf("%d\n",sizeof(s......
  • 12_指针数组
    指针数组数值指针数组本质的数组,只是每个元素都是指针32位平台:char*arr1[4];short*arr2[4];int*arr3[4];sizeof(arr1);//16Bsizeof(arr2);//16Bsizeof(arr3);//16B字符指针数组char*arr[4]={"hehehehe","xixixixix","lalalala","wuwuwuwu"......
  • 双指针
    双指针问题要回答几个问题要不要将数组排序两个指针是有共同的起点还是两个指针一个在左一个在右(也就是所谓的对撞指针)i什么时候走,j什么时候走,i走不走是否受到j的影响三数之和https://leetcode.cn/problems/3sum/?envType=study-plan-v2&envId=top-100-liked要排序,因为......
  • 函数指针与回调函数
    (目录)1.函数指针前面我们学的:整形指针是指向整形的指针字符指针是指向字符的指针数组指针是指向数组的指针所以函数指针就是指向函数的指针假如有一个int类型变量a,要取它的地址就是&a,有一个字符类型变量c,要取它的地址就是&c,那么一个函数的地址是怎样取到的呢。接下来,我......
  • [算法]双指针的种种应用
    本文使用C语言Q:为什么要用双指针?A:因为通过使用双指针可以使算法的时间复杂度降低(或者降低遍历次数),有时也能降低空间复杂度分类根据双指针的用法,可分为前后双指针,头尾双指针,快慢双指针.....前后双指针应用一删除排序数组中的重复项要求:原地删除,并返回新数组的......
  • 【C++】函数重载 ③ ( 为函数指针赋值重载函数 )
    文章目录一、函数指针回顾1、函数指针概念2、函数指针语法3、代码示例-函数指针示例二、为函数指针赋值重载函数1、为函数指针赋值重载函数2、代码示例-为函数指针赋值重载函数博客总结:重载函数:使用相同的函数名,定义不同的函数参数列表;判定标准:只有函数......
  • AssetDatabase.LoadAssetAtPath 获取FBX资源空指针问题
    问题一 LoadAssetAtPath返回空publicclassProcessModel:AssetPostprocessor{privatevoidOnPostprocessModel(GameObjectinput){if(input.name!="Enemy2b")return;//取得导入模型相关信息ModelImporterimporter=ass......