首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言 | 改变指针变量的值

例35:C语言编程实现改变指针变量的值。 解题思路: 指针p的值是可以变化的,printf函数输出字符串时,从指针变量p当时所指向的元素开始,逐个输出各个字符,直到遇‘\0’为止。...而数组名虽然代表地址,但是它是常量,它的值是不能改变的。...源代码演示: #include//头文件  int main()//主函数  {   char *p="I love C program language";//定义指针变量且赋值 ...  p=p+7;//指针变量p指向字符串的第8位    printf("%s",p);//输出    return 0;//主函数返回值为0  } 编译运行结果如下: C program language...p=p+7; 虽然是+7,但是在C语言中,下标是从0开始的。 C语言 | 改变指针变量的值 更多案例可以go公众号:C语言入门到精通

3.5K2419
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    初识C语言——初识指针(什么是内存,什么是指针,指针变量怎么用,指针的大小)

    在C语言,有一种专门用来存储地址的变量,叫做指针变量。...指针变量的定义方法: 类型 * 指针变量名;(*说明该变量是一个指针变量) 我们来演示一下: int num = 10; int *p;//p为一个整形指针变量 p = # 这样就把一个整型变量的地址放到了一个整型指针变量里边...("%c\n", ch); return 0; } 3.指针变量的大小 思考一个问题,整型变量的大小是4个字节,char类型1个字节,double8个字节,那么指针变量的大小是多少?...为什么不同类型的指针变量大小是一样的呢?又为什么是4个字节呢? 原因是: 指针是用来存放地址的,所以指针变量的大小取决于地址的大小,而在同一平台上地址的大小是固定不变的。...我们来验证一下: 在32位平台上: 4个字节 64位平台上: 8个字节 所以,我们得出结论: 指针变量的大小在同一平台是是固定的: 指针大小在32位平台是4个字节,64位平台是8

    26410

    C语言|图解指针变量

    1.2 己值、他址、他空间 指针变量的值就是其指向的空间的地址,指向的地址的空间大小就是指针变量指向类型的大小。...1.3 声明与初始化 当声明一个指针变量,没有初始化时,指针变量只获得了其自身的内存空间,而其指向还没有确定,此时指针变量解引用做左值是非法操作。...// ② 右值是一个同类型指针,且已初始化 ptr = (int*)malloc(sizeof(int));// ③ 右值是一个内存分配函数返回一个void指针 *ptr = 0;...,另一个函数(如下例的stackFrame_reuse())执行时,该空间会被stackFrame_reuse()重复使用,a所使用的空间将不复存在,所以当一个指针变量指向局部变量的内存空间时,其地址值传递给主调函数时...#include #include int g(int **iptr) { // 当试图修改主调函数的一级指针变量时,被调函数的参数是一个二级指针 if

    1.6K20

    8.2 C语言指针变量

    01怎么定义指针变量 1、一般形式 类型名 *指针变量名; 例子:int *point_1,*point_2; 左端的int是在定义指针变量时必须指定的“基类型”。...02怎样引用指针变量 1、给指针变量赋值。如:p=&a;指针变量p的值是变量a的地址,p指向a。 2、引用指针变量指向的变量。...如已执行“p=&a”,即指针变量p指向了整型变量a,则printf(“%d”,*p);其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。 3、引用指针变量的值。...如:printf(“%o”,p);作用是以八进制形式输出指针变量p的值,如果p指向了a,就是输出了a的地址,即&a。 4、&取地址运算符。&a是变量a的地址。...C语言 | 函数实现输出I love you 更多案例可以go公众号:C语言入门到精通

    1.3K2625

    C语言之指针变量

    , 例如 指针变量是int类型, 那么将来就只能保存int类型变量的地址 3、* : 标示这是一个指针变量,代表访问指针变量指向的那一块存储空间 4、指针变量只能存储地址...a4是常量指针,指向整型的常量指针,即指针是常量 //(可以间接修改指向变量的值,但是不可重新赋值新变量地址) const int * const a5; //a5是指向整型常量的常量指针(...既不能间接修改变量的值,也不可重新赋值新变量地址) 总结:1、const关键字写在数据类型的前面和后面是等效关系;   2、指向常量的指针:不能间接修改所指向变量的值,但是可以给指针重新赋值新地址   ..., bp保存的地址:5fbff64c, *bp: 88 /* 这个地方有点奇怪,b是常量,指针变量bp指向b, 间接通过指针bp修改变量的值, 但是最后打印结果是:*bp的值变了...,b的值没有变(b是常量,指针变量bp指向b), 而且bp保存的地址和b的地址还是保持一样 这究竟是为啥?

    2.1K30

    C语言中只读指针变量与只读变量指针

    只读指针变量和只读变量指针看着好像有点绕; 只读指针变量:意思是只读指针的变量 只读变量指针:只读变量的指针 本文的主角是const关键字 如果我们开发的时候,定义了某个变量,不想让别人修改时,就可以使用...那么打印出来p的值,就是a的值,10; //普通的指针变量 int *p = &a; printf("%d \n",*p);//10 //指向数值222 *p...= 222; printf("%d \n",*p);//222 //指向地址b p = &b; printf("%d \n",*p);//20 可以修改指针变量的值;...也可以修改指针变量的地址; 只读指针变量 //只读指针变量 //这是一个const指针指向的int类型的变量 //const指针指向的整型变量 int *const cp1 = &a; *cp1...= 2;//值可以修改 *cp1 = &b; //cp1 = &b; //指针不能修改 值可以修改; 地址不能修改; 只读变量指针 //一个const指针指向的一个const整型的变量

    2.5K20

    C语言 | 指向结构体变量的指针变量

    例40:C语言实现通过指向结构体变量的指针变量变量输出结构体变量中的信息。...解题思路:在主函数中声明了struct student类型,然后定义了一个struct student类型的变量s_1,又定义了一个指针变量p,它指向一个struct student类型的对象,将结构体变量...s_1的起始地址赋给指针变量p,也就是使p指向s_1,然后对s_1的各个成员赋值。...%d\n名字是%s\n性别是:%c\n成绩是:%f\n",   (*p).num,(*p).name,(*p).sex,(*p).score); //输出结果    return 0;//主函数返回值为...思考两个问题,怎么对结构体变量成员赋值?怎么通过指向结构体变量的指针访问结构体变量中成员? C语言 | 通过指向结构体变量的指针变量输出结构体变量中的信息 更多案例可以go公众号:C语言入门到精通

    1.8K2218

    【C语言笔记】指针变量的运算

    前言 指针变量也是可以进行运算的,如指针变量对其自身加上某个整数或减去某个整数,这在内存上体现为:相对这个指针向后偏移多少个单位或向前偏移了多少个单位,这里的单位与指针变量的类型有关。...= 'a', *pc = &c; double d = 2.14e9, *pd = &d; //最初的值 printf("pa0=%d, pb0=%d, pc0=%d, pd0...如图:pa1所指向的地址在pa0所指向地址往后8字节处,pa2指向地址在pa1指向地址往前4字节处。 从本示例程序中,还可以看出:连续定义的变量在内存的存储有可能是紧挨着的,有可能是分散着的。...以上就是关于C语言指针变量运算的一些总结:指针变量与整数相加相减是相对该指针指向的地址向后向前偏移多少个单位。这里的单位不能认为总是1。...在32bit环境下,char类型指针的偏移单位才是1字节,int类型指针偏移单位是4字节,float类型指针偏移单位是4字节,double类型指针偏移单位是8字节。

    1.4K20

    C语言中指针变量

    CPU 访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址。...#include //指针变量测试 //指针变量存储的值是另一个变量的地址,也就是说改指针变量指向了另一个变量 int main(){ int a=10;...//2.定义指针变量时必须带*,定义并初始化,b的值是a的内存地址 int* b=&a; //3.打印出指针变量本身的地址 printf("%#X \n...",(unsigned int)&b);//输出 0XBFA0ED78 //4.打印出指针变量存储的值 printf("%#X \n",(unsigned int)b)...;//输出 0XBFA0ED70 //5.给指针变量赋值时,不用带* b=&c; //6.通过指针变量获取数据时要带*,使用指针是间接获取数据

    2.6K10

    【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )

    文章目录 一、直接修改 和 间接修改 指针变量 的值 二、在函数中 间接修改 指针变量 的值 三、在函数中 间接修改 外部变量 的原理 一、直接修改 和 间接修改 指针变量 的值 ---- 直接修改 指针变量...的值 , 就是为其赋值一个地址值 , 使用 & 取地址符 , 将变量地址赋值给指针变量 , 或者使用 malloc 函数分配内存赋值给 指针变量 ; // 将变量地址赋值给一级指针 p...= &a; 间接修改 指针变量 的值 , 首先要 将 指针变量 的 地址值 , 赋值给 1 个 二级指针 变量 , 通过 * 符号 , 间接修改 一级指针变量的值 ; // 将一级指针的地址赋值给二级指针...return 0; } 执行结果 : 二、在函数中 间接修改 指针变量 的值 ---- 在 函数 中 间接修改 指针变量 的值 , 将 指向一级指针 的 二级指针 变量 , 传递到 函数形参 中 ,...在 函数中 , 使用 * 符号 , 修改 二级指针 指向的 一级指针 的变量值 ; 注意 : 如果要 修改 一级指针 的值 , 必须 传入 指向 一级指针 的 二级指针 变量 才可以 , 传入一级指针变量

    21.4K11

    【重拾C语言】七、指针(一)指针与变量、指针操作、指向指针的指针

    前言 指针是C语言中一个重要的概念 正确灵活运用指针 可有效地表示和使用复杂的数据结构 可动态分配内存空间,节省程序运行空间,提高运行效率 不正确理解和使用指针,指针将是程序中最危险的成分,由此带来的后果可能是无法估量的...return 0; } C语言中的指针定义符是*,它用于声明一个指针变量。...在C语言中,间接引用运算符使用*符号。通过将间接引用运算符应用于指针变量,可以获取该指针指向的实际值。例如,如果ptr是一个指向整数的指针变量,那么*ptr将给出该指针指向的整数的值。...NULL是C指针类型的一个特殊值,在系统文件stdio.h中定义,其值为0,称为“空” 表示指针变量的值为空,不指向任何变量或函数 NULL值属于所有指针类型。...在C语言中,指针操作包括指针的算术运算、指针的比较和指针的递增/递减等。 7.2.1 指针的算术运算 指针的加法运算:可以将指针与一个整数相加,结果是指针指向的内存地址增加了若干个字节。

    35010

    【C语言篇】深入探究 C 语言指针:揭开指针变量与地址的神秘面纱

    引言 指针是 C 语言的核心概念之一,也是程序员必须掌握的关键技能。它不仅是 C语言的灵魂,还在操作系统、硬件驱动等底层开发中有广泛的应用。...本指南将带您从基础到高级,深入理解指针的概念、使用方法和最佳实践 2. 指针的基础概念 2.1 什么是指针? 指针是 C 语言中特殊的变量,它的值是另一个变量的内存地址。...指针与函数 指针可以作为函数的参数和返回值,用于处理动态数据和提高程序效率。在 C 语言中,指针和函数结合使用是高效编程的核心。...5.1 指针作为函数参数 通过指针传递参数可以避免拷贝整个数据结构,从而提高效率。典型应用场景是交换两个变量的值。...常见应用场景:事件驱动编程、排序算法的比较器函数等。 6. 多级指针 在 C 语言中,多级指针(如二级指针)是指指向另一个指针的指针。

    24910

    C语言中“指针”和“指针变量”的区别是什么

    比较严格的说法是这样的: 系统为每一个内存单元分配一个地址值,C/C++把这个地址值称为“指针”。如有int i=5;,存放变量i的内存单元的编号(地址)&i被称为指针。...“指针变量”则是存放前述“地址值”的变量,也可以表述为,“指针变量”是存放变量所占内存空间“首地址”的变量(因为一个变量通常要占用连续的多个字节空间)。...比如在int i=5;后有一句int *p=&i;,就把i的指针&i赋给了int *型指针变量p,也就是说p中存入着&i。所以说指针变量是存放指针的变量。...有一个事实值得注意,那就是有不少资料和教科书并没有如上区分,而是认为“指针是指针变量的简称”,如对int *p=&i;的解释是:声明一个int *型指针p,并用变量i的地址初始化;而严格说应该是声明一个...int *型指针变量p才对。

    61730

    C语言指针的值在哪里?在SRAM

    看时间L1和内存的时间是100倍。 就先记住:FLASH用来存储程序的,SRAM是用来存储运行程序中的中间变量。 然后SRAM有个别的名字叫缓存,这听懂了吧? SRAM是静态随机存取存储器。...SDRAM 大概是这样的 LPDDR4是新一代面向移动设备的低功耗内存,它属于SDRAM家族的存储器产品。...同步(Synchronous )是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准 动态(Dynamic )是指存储阵列 需要不断的刷新来保证数据不丢失 随机(Random )是指数据不是线性依次存储...这部分空间的使用是由链接器在对项目代码编译链接时,根据程序内容自动使用。空间大小随程序内部使用情况扩张。 官方也提供接口,可以通过程序声明变量,直接使用这部分空间。...放入该部分的值在启动时不会被初始化,在软件重启后也会保持值不变。

    12110

    C++定义指针变量 | 使用指针变量

    C++指针变量的定义 C++规定所有变量在使用前必须先定义,即指定其类型,在编译时按变量类型分配存储空间,对指针 变量必须将它定义为指针类型。...//定义整型变量 int i,j; //定义指针变量 int *point_num; 上述定义的指针变量point_num是指向整型数据的指针变量,也就是说,指针变量pointer_num只能用来指向整型数据...定义指针变量的一般形式为 基类型 *指针变量名; 如下: int *point_num1; float * point_num2; char * point_num3; 指针变量名是pointer_num1...即*不是指针变量名的一部分,在定义变量时在变量名前加一个*表示该变量是指针变量。 在C++中怎样使一个指针变量指向另一个变量呢?...C++定义指针变量 | 使用指针变量 更多案例可以go公众号:C语言入门到精通

    2.7K2420

    C语言新手小白详细教程(7)指针和指针变量

    开篇说明 本章节我们学习C语言中一个非常重要的概念 指针。在之前的章节,我们已经接触过指针这个概念了,比如scanf()中的地址列表,这就是指针。所以,用一句话总结 指针是什么呢?指针就是地址!...1、指针的定义 指针:就是变量的内存地址。 指针变量就是存放内存地址的变量。(存放指针的变量) 从以上的定义我们可以知道,首先指针是一个值,这个值值指的是内存地址。...指针变量&i的值是变量i在内存中的地址,指针变量i_pointer的值也是变量i在内存中的地址,所以: int * i_pointer; i_pointer == &i; 4、为指针变量赋值 指针变量存储的是内存地址...printf("i的地址为:%p\n", i_pointer);//输出i_pointer的地址 printf("i的值为:%d\n", &i); printf("ch的值为:%c\n"...内存为2000的这个地址里存储的数值为30;通过地址赋值。 第二种方式如何用C语言表示呢?

    20910

    C - 指针C语言指针的总结

    C语言指针的总结 1. 变量 不同类型的变量在内存中占据不同的字节空间。 内存中存储数据的最小基本单位是字节,每一个字节都有一个内存地址,这个地址是一个十六进制的数。...变量的值:存储在变量中的数据,叫做变量的值。 变量的地址:一个变量是由一个或者多个字节组成的,组成这个变量的低字节的地址,就是这个变量的地址。...下面通过一张图可以更直观的理解内存中的地址 ? 内存中的地址演示图 2. 指针 指针是C语言的灵魂。指针变量占据8个字节。 变量在内存中的存储。 变量的值:存储在变量中的数据,叫做变量的值。...int *p1, * p2, * p3; 野指针 我们声明一个指针变量,如果没有为其初始化,那么这个时候这个指针变量中是有值的,是垃圾值,随机数。...如果一个指针变量的值是NULL,那么去访问这个指针指向的变量的时候一定会报错。 多个指针指向同一个变量,修改其中一个所有指针指向的值都会改变。因为多个个指针指向的是同一块地址。

    4.2K81

    【C 语言】指针数据类型 ( 指针类型变量 | 使用 * 操作内存 )

    文章目录 一、指针类型变量 二、使用 * 操作内存 一、指针类型变量 ---- 指针 也是 变量 , 也占用内存空间 , 可以用于保存 内存地址 ; 测试 指针 变量占用的内存空间大小 : 定义一个 int...* 指针类型变量 , 使用 sizeof 函数 获取该变量的大小 ; 代码示例 : #include #include int main() { int...a = 8; // 声明指针类型变量 int *p = 888; // 声明二级指针类型变量 int **p2 = 8888; // 打印 变量 a , b...: 声明 指针 时 , * 表示声明的变量是指针变量 ; 使用指针 : 使用 指针 时 , * 表示操作 指针 指向的 内存空间 的数据 ; 操作内存 : *p 相当于 通过 指针地址 ( p 变量值...) 找到对应内存首地址 , 根据数据类型大小操作 这块指定大小 的内存 ; 内存赋值 : *p 放在等号左边 , 是给 内存 赋值 ; 内存取值 : *p 放在等号右边 , 是从 内存 取值

    67010
    领券