首页 > 其他分享 >C-指针

C-指针

时间:2023-03-27 23:11:43浏览次数:64  
标签:10 const 变量 int 报错 指针

指针

每一个变量都有一个内存位置, 每一个内存位置都定义了可使用 & 运算符访问的地址, 它表示了在内存中的一个地址.

指针也就是内存地址, 指针变量是用来存放内存地址的变量.

int a = 1;
int * p = NULL;
p = &a;
printf("变量a的地址为: %p", p);
printf("内存上存储的值为: %d", *p);
// *号: 间接运算符, 也叫解引用运算符, 用来获取对应地址存储的值
*p = 10;
printf("变量a的值为: %d", a);  // a = 10

交换变量的值

#include <stdio.h>

void swap_value(int * v1, int * v2)
{
    int temp;
    temp = *v1;
    *v1 = *v2;
    *v2 = temp;
}

int main()
{
    int a = 1, b = 10;
    swap_value(&a, &b);
    printf("a = %d, b = %d", a, b);
    return 0;
}

const类型

  • const 在定义指针前面, 不能通过指针改变指向变量的值

    int a = 1, b = 10;
    const int* p = &a;
    *p = 20;  // !!!报错!!!
    a = 20;  // 可以这样改变值
    p = &b;  // 可以改变指针的指向
    
  • const 在定义指针后面, 不能改变指针的指向

    int a = 1, b = 10;
    int* const p = &a;
    *p = 20;  // 可以改变值
    p = &b;  // !!!报错!!!
    
  • const 在定义指针的前面和后面, 兼顾以上两种

    int a = 1, b = 10;
    const int* const p = &a;
    *p = 20;  // !!!报错!!!
    p = &b;  // !!!报错!!!
    

标签:10,const,变量,int,报错,指针
From: https://www.cnblogs.com/khrushchefox/p/17263413.html

相关文章

  • C语言指针的理解
    //demo1.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include<stdio.h>inti;voidch(int*a,int*b){ intp; ......
  • 引用和指针的区别
    1、定义和性质不同1、指针是一个变量,存储的地址,指向内存单元2、引用是变量的别名,跟原始变量是同一块内存inta=10;int*p=&a;//p是指针,&在此是取地址运算in......
  • 函数指针
    函数指针的几种用法#include<iostream>#include<vector>usingnamespacestd;voidadd(inta,intb){cout<<a+b<<"";}voidForEach(constvector<int>&n......
  • C++11之智能指针shared_ptr
    在C++开发中,我们经常会遇到程序运行中突然崩溃、程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的。C++11新标准中,增添了uni......
  • 快慢指针-leetcode141-判断链表中是否有环。
    LeetCode#141题目描述:给定一个链表,判断链表中是否有环。如果链表中存在环,则返回true。否则,返回false。进阶:你能用O(1)(即,常量)内存解决此问题吗?示例1:example1......
  • 函数指针
        函数的二进制代码存放在内存四区中的代码段,函数的地址是它在内存中的起始位置。如果把函数的地址作为参数传递给函数,就可以在函数中的灵活的调用其它函数。使......
  • 指针与数组(二)
    指针和数组之间的替换:一维数组和指针:数组名是数组的首地址数组名是一个常指针不可修改可以对指针操作来访问元素访问数组的方式:1.直接访问数组a[5];2.使用指针*p......
  • C++指针
    1指针的概念#include<iostream>usingnamespacestd;/*间接引用指针时,可获得该指针指向的变量内容本部分参考内容:C++程序设计教程钱能清华大学出版社*/void......
  • Leetcode 15 & 16 (双指针)
    都是比较经典的双指针问题,我们可以从中总结一些双指针的规律首先这两题如果en做的话就是\(O(n^{3})\)的算法,暴力去找。但是我们可以发现这三个值是满足一定约束的,所以......
  • 数组指针
    一、概念下面哪个是数组指针?int*p1[10];int(*p1)[10];int(*p)[10];解释:p先和*结合,说明p是一个指针变量,然后指向一个大小为10的整型数组,所以p是一个指针,指向整型数组,叫做......