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

8.2 C语言指针变量

4、指向整型数据指针类型表示为“int”,读作“指向int指针”或简称“int指针”。 5、指针变量中只能存放地址指针),不要将一个整数赋给一个指针变量。...02怎样引用指针变量 1、给指针变量赋值。如:p=&a;指针变量p值是变量a地址,p指向a。 2、引用指针变量指向变量。...如:printf(“%o”,p);作用是以八进制形式输出指针变量p值,如果p指向了a,就是输出了a地址,即&a。 4、&取地址运算符。&a是变量a地址。...5、*指针运算符,*p代表指针变量p指向对象。 03指针变量作为函数参数 1、函数参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型,它作用是将一个变量地址传送到另一个函数中。...C语言 | 函数实现输出I love you 更多案例可以go公众号:C语言入门到精通

1.3K2625

C语言|图解指针变量

= NULL; 图解: 1.1 己址和己空间 指针变量也是一个变量,对应一块内存空间,对应一个内存地址指针名就是己址。...1.2 己值、他址、他空间 指针变量值就是其指向空间地址,指向地址空间大小就是指针变量指向类型大小。...1.3 声明与初始化 当声明一个指针变量,没有初始化时,指针变量只获得了其自身内存空间,而其指向还没有确定,此时指针变量解引用做左值是非法操作。...,另一个函数(如下例stackFrame_reuse())执行时,该空间会被stackFrame_reuse()重复使用,a所使用空间将不复存在,所以当一个指针变量指向局部变量内存空间时,其地址值传递给主调函数时...: 以下图示a表示计算机内存,b表示一个函数调用时在栈(stack)上开辟栈帧空间: 2 指针变量与数组名 数组名在一定上下文中会转换为指向数组首元素地址,以方便指针算术运算,如 #include

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

C语言指针变量

一、指针变量 /* 1、定义 普通变量: 数据类型 变量名称 指针变量: 数据类型 * 变量名称; 2、指针变量是什么类型,那么将来就只能保存什么类型变量地址..., 例如 指针变量是int类型, 那么将来就只能保存int类型变量地址 3、* : 标示这是一个指针变量,代表访问指针变量指向那一块存储空间 4、指针变量只能存储地址...既不能间接修改变量值,也不可重新赋值新变量地址) 总结:1、const关键字写在数据类型前面和后面是等效关系;   2、指向常量指针:不能间接修改所指向变量值,但是可以给指针重新赋值新地址   ...3、常量指针:可以间接修改指向变量值,但是不能重新赋值新变量地址   4、指向常量常量指针:有2个const修改,既不能间接修改变量值,也不可重新赋值新变量地址 验证示例代码: //1、指针变量,...=50, b地址: 5fbff64c, bp保存地址:5fbff64c, *bp: 88 /* 这个地方有点奇怪,b是常量,指针变量bp指向b, 间接通过指针bp修改变量值,

2K30

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

只读指针变量和只读变量指针看着好像有点绕; 只读指针变量:意思是只读指针变量 只读变量指针:只读变量指针 本文主角是const关键字 如果我们开发时候,定义了某个变量,不想让别人修改时,就可以使用...,指向变量a地址。...= 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语言 | 改变指针变量

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

3.4K2419

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

例40:C语言实现通过指向结构体变量指针变量变量输出结构体变量信息。...解题思路:在主函数中声明了struct student类型,然后定义了一个struct student类型变量s_1,又定义了一个指针变量p,它指向一个struct student类型对象,将结构体变量...s_1起始地址赋给指针变量p,也就是使p指向s_1,然后对s_1各个成员赋值。...    struct student *p;//定义结构体指针变量    p=&s_1;//将s_1得地址赋给指针变量    s_1.num=10010;//赋值    strcpy(s_1.name,...思考两个问题,怎么对结构体变量成员赋值?怎么通过指向结构体变量指针访问结构体变量中成员? C语言 | 通过指向结构体变量指针变量输出结构体变量信息 更多案例可以go公众号:C语言入门到精通

1.8K2218

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

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

1.3K20

C语言指针变量

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

2.6K10

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

57130

C++指针变量作函数参数接收数组地址

C++指针变量作函数参数接收数组地址C++中,用指针变量指向数组元素时要注意: 指针变量p可以指向有效数组元素,实际上也可以指向数组 以后内存单元。...在C++实际中,函数调用时并不存在一个占有存储空间形参数组,只有指针变量。...实参与形参结合,有以下几种形式:  实参 形参 数组名 数组名 数组名 指针变量 指针变量 数组名 指针变量 指针变量 实参数组名array代表一个固定地址,或者说是指针型常量,它值是无法改变;...而形参数组名是指针变量,并不是一个固定地址值,它值是可以改变。...在函数调用开始时,它接收了实参数组首元素地址,但在函数执行期间,它可以再被赋值。 8.2 C++指针变量作函数参数接收数组地址 更多案例可以go公众号:C语言入门到精通

9202218

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

C++指针变量定义 C++规定所有变量在使用前必须先定义,即指定其类型,在编译时按变量类型分配存储空间,对指针 变量必须将它定义为指针类型。...即*不是指针变量一部分,在定义变量时在变量名前加一个*表示该变量指针变量。 在C++中怎样使一个指针变量指向另一个变量呢?...只需要把被指向变量地址赋给指针变量即可: point_num1=&i; 在C++中,一般编译系统为每一个指针变量分配4个字节存储单元,用来存放变量地址, 在定义指针变量时要注意:  不能用一个整数给一个指针变量赋初值...  int temp;//定义整型变量   temp=3;赋初值   point_num1=&temp;//将指向变量temp地址赋给指针变量   cout<<*point_num1<<endl;...C++定义指针变量 | 使用指针变量 更多案例可以go公众号:C语言入门到精通

2.6K2420

C - 指针C语言指针总结

C语言指针总结 1. 变量 不同类型变量在内存中占据不同字节空间。 内存中存储数据最小基本单位是字节,每一个字节都有一个内存地址,这个地址是一个十六进制数。...如何取出变量地址:使用&(取地址运算符)运算符,&变量名;这个表达式值就是这个变量地址。使用%p控制度输出变量地址。 什么是指针变量地址叫做指针指针就是地址地址就是指针。...下面通过一张图可以更直观理解内存中地址 ? 内存中地址演示图 2. 指针 指针C语言灵魂。指针变量占据8个字节。 变量在内存中存储。 变量值:存储在变量数据,叫做变量值。...变量地址:组成这个变量低字节地址,就是这个变量地址。 取出变量地址,用&运算符 %p输出变量地址变量地址就叫做指针,我们可以使用一个指针变量来存储变量地址。...因为p指针值就是num变量地址,不能直接赋值一个非地址类型常量数据,也不能直接赋值一个变量指针。 p指针自己也有地址, 因为指针变量也是一个变量,&p取到指针p地址

4.1K81

C 语言变量本质 ( 变量修改 | 直接修改变量 | 通过内存地址间接修改变量 | 通过指针间接修改变量 )

文章目录 一、变量修改 1、直接修改变量 2、通过内存地址间接修改变量 3、通过指针间接修改变量 一、变量修改 ---- 访问 变量 , 就是 访问 内存空间 ; 访问 指的是 读写 内存 ; 修改变量方式...: 直接修改 : 通过 变量 , 可以 直接 修改内存 , 间接修改 : 通过取地址符 , 拿到变量所在内存 地址编号 , 通过地址编号修改内存 ; 1、直接修改变量 #include <stdio.h...d, &a=%d\n", a, &a); // 间接修改 : 通过内存地址 // 获取 变量 a 地址 , // 直接修改该地址对应内存空间中数据 *( &a )...= 2; printf("a=%d, &a=%d\n", a, &a); // 间接修改2 : 通过指针 // 将变量 a 内存地址赋值给 p int *p;...p = &a; // 通过修改 p 指针指向内存 , 修改变量 a 值 *p = 3; printf("a=%d, &a=%d\n", a, &a); return

1.2K10

C语言 | 指向指针指针

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

3K32

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

文章目录 一、指针类型变量 二、使用 * 操作内存 一、指针类型变量 ---- 指针 也是 变量 , 也占用内存空间 , 可以用于保存 内存地址 ; 测试 指针 变量占用内存空间大小 : 定义一个 int...* 指针类型变量 , 使用 sizeof 函数 获取该变量大小 ; 代码示例 : #include #include int main() { int...地址 printf("sizeof(a) = %d , sizeof(b) = %d, sizeof(p2) = %d\n", sizeof(a),...: 声明 指针 时 , * 表示声明变量指针变量 ; 使用指针 : 使用 指针 时 , * 表示操作 指针 指向 内存空间 数据 ; 操作内存 : *p 相当于 通过 指针地址 ( p 变量值...; * 符号相当于一把钥匙 , 通过该符号查找一个地址对应内存 , 可以 访问 ( 读取 / 写出 ) 该内存中存储数据 ; 代码示例 : #include #include

60710

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

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

21810

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

1.字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放地址(字符串第一个字符地址),而不是将字符串放到字符指针变量中。 2.赋值方式。...,而是字符串中第一个元素地址。...而定义一个字符指针变量时,给指针变量分配内存单元,在其中也可以放一个字符变量地址,也就是说,该指针变量可以指向一个字符型数据,但如果未对它赋予一个地址值,则它并未指向一个确定字符数据。...c[] = "world"; b = c;//这也是对,因为b指向了c首个元素 printf("%s\n", b); system("pause"); return...0; } 5.需要注意是,若定义了一个字符指针变量,并使其指向了一个字符串,也可以用下标的形式引用指针变量所指字符串中字符,例如: #include #include<iostream

1.5K10

初识指针指针指针变量、如何理解地址指针类型意义、void*指针、野指针、空指针)(笔记)

* //取地址 解引用 return 0; } 二、指针指针变量 指针地址 指针变量变量-存放地址 指针变量用来存放地址...,指针变量并不完全等同指针, 但口头上 指针 一般是 指针变量 2.1指针变量大小 1.指针变量是专门用来存放地址,指针变量大小取决于一个地址存放需要多大空间 32位机器上:地址线32根,地址二进制序列就是...野指针C语言中一个常见内存泄漏问题。如果程序中存在野指针,当程序再次申请内存时,可能会将之前已经释放内存分配给新变量,导致程序出现不可预测行为,甚至崩溃。 野指针成因: 1....NULL 是C语言中定义一个标识符常量,值是0,0也是地址,这个地址是无法使用,读写该地址会报错。...使用空指针进行解引用操作会导致程序崩溃,因为没有任何有效内存地址可供访问。在C语言中,空指针主要用于表示指针变量没有指向任何有效内存地址,例如未初始化指针变量或已释放内存块。

10610

C语言指针(野指针)

指针:就是指针指向位置是不可知(随机性,初始化,不正确,没有明确限制),指针变量在定义时如果未初始化,其值是随机指针变量值是别的变量地址,意味着指针指向了一个地址是不确定变量,此时去解引用就是去访问了一个不确定地址...2:如何规避野指针 1.1:指针变量初始化 int a = 10; int* pa = &a; //指针变量初始化 指针常见错误 引用未初始化指针变量 试图引用未初始化指针变量是初学者最容易犯错误...未初始化指针变量就是“野”指针,它指向是无效地址。 有些书上说:“如果指针变量不初始化,那么它可能指向内存中任何一个存储单元,这样就会很危险。...空指针不应与未初始化指针混淆:保证空指针与指向有效对象任何指针进行比较。但是,根据语言和实现,未初始化指针可能没有任何此类保证。它可能与其他有效指针相等; 或者它可能比较等于空指针。...NULL printf("%d\n",pa); 4.4:指针使用之前检查有效性 当你指针变量不可以用时候就把它设置成NULL,当你指针变量可以用时候就不是NULL。

2.6K20
领券