首页
学习
活动
专区
工具
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.4K2419
您找到你想要的搜索结果了吗?
是的
没有找到

初识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

19410

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语言|图解指针变量

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.5K20

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地址还是保持一样 这究竟是为啥?

2K30

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.4K20

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.3K20

C语言指针变量

CPU 访问内存时需要地址,而不是变量名和函数名!变量名和函数名只是地址一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址。...#include //指针变量测试 //指针变量存储另一个变量地址,也就是说改指针变量指向了另一个变量 int main(){ int a=10;...//2.定义指针变量时必须带*,定义并初始化,ba内存地址 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; } 执行结果 : 二、在函数中 间接修改 指针变量 ---- 在 函数 中 间接修改 指针变量 , 将 指向一级指针 二级指针 变量 , 传递到 函数形参 中 ,...在 函数中 , 使用 * 符号 , 修改 二级指针 指向 一级指针 变量值 ; 注意 : 如果要 修改 一级指针 , 必须 传入 指向 一级指针 二级指针 变量 才可以 , 传入一级指针变量

20.7K10

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才对。

55930

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.5K2420

C - 指针C语言指针总结

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

4.1K81

C语言 | 指向指针指针

“要成为绝世高手,并非一朝一夕,除非天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历日积月累学习。 那么如何学习呢?当然每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例82:C语言用指向指针指针方法对n个整数排序并输出;要求将排序单独写成一个函数;n个整数在主函数中输入,最后在主函数中输出。...解题思路:读者看着道题时候,首先要观察一下有什么规律,然后指向指针指针在上一道练习题中已经有了铺垫,读者可以联系上一道题去熟练使用指向指针指针。...C语言源代码演示: #include//头文件 int main()//主函数 { void sort(int **point,int number); //sort排序函数声明

3K32

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

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

58310

7.1 什么指针指针变量

一、指针是什么 解释:由于通过地址能找到所需变量单元,可以说,地址指向该变量单元,因此,将地址形象化地称为“指针” 二、指针变量 解释:一个变量地址称为该变量指针”,如果有一个变量专门用来存放另一个变量地址...,则称它为“”指针变量” 注意:指针变量地址 (1)定义指针变量 一般形式 类型名 *指针变量名 注意: ①指针变量前面的“*”表示该变量类型为指针变量...(2)指针变量引用 在引用指针变量时,可能有三种情况 ①给指针变量赋值 ②引用指针变量指向变量 ③引用指针变量 例子: ?...注意:要熟练掌握两个有关运算符 ① & 取地址运算符 ② * 指针运算符 (3)指针变量作函数参数 函数参数不仅可以是整型、浮点型 、字符型等数据,还可以是指针类型。...它作用是将一个变量地址传送到另一个函数中 原创不易,未经本公众号允许禁止转载,否则追究法律责任

9363029

c语言之字符指针变量和字符数组异同

1.字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放地址(字符串第一个字符地址),而不是将字符串放到字符指针变量中。 2.赋值方式。...char str[20]; str = "ni hao a"; 而对于字符指针变量,可以采用以下方式赋值: char *a; a = "ni hao a"; 但需要注意赋值给a不是字符...而定义一个字符指针变量时,给指针变量分配内存单元,在其中也可以放一个字符变量地址,也就是说,该指针变量可以指向一个字符型数据,但如果未对它赋予一个地址,则它并未指向一个确定字符数据。...而常量指针指向不可以更改,但是它指向可以改,比如说: #include #include int main() { char* b;...0; } 5.需要注意,若定义了一个字符指针变量,并使其指向了一个字符串,也可以用下标的形式引用指针变量所指字符串中字符,例如: #include #include<iostream

1.4K10
领券