为什么C语言编程中使用指针不当会导致严重后果?会使机器硬件损坏?

作者&投稿:海永 (若有异议请与网页底部的电邮联系)
为什么C语言编程中使用指针不当会导致严重后果?会使机器硬件损坏?~

因为指针不像我们平时用数组那么直观
而且随着指针指向的不同
对应数据也相应改变
如果使用不当
会出现连自己都不知道具体对应什么东西
使程序跑飞
报错
相当的常见
机器硬件一般是不会损坏的只是烧进去的程序运行错误

指针悬空后,如果一直被弃置不用除了一些内存被无缘无故的被占用外,
不会有其他不好的影响。
但是一旦一个指向未知的指针被程序调用,并且进行了写操作,这就有危险了。
如果这个指针指向了系统核心进程那么这个进程有可能引意外的写操作而异常进而导致系统崩溃,更可怕的是,如果这个指针如果指向了硬件驱动,如打印机、内存、CPU调度或温度控制。
那后果就是硬件的损毁。

因为指针不像我们平时用数组那么直观 而且随着指针指向的不同 对应数据也相应改变 如果使用不当 会出现连自己都不知道具体对应什么东西 使程序跑飞 报错 相当的常见 机器硬件一般是不会损坏的只是烧进去的程序运行错误

比如,你不对指针赋初值,他就会指向一个不确定的地方,万一是关键进程,系统地址什么的,你的机器就自然会崩溃

指针是操作内存的,如果使用错误,导致程序崩溃,会影响内存,机器硬件坏不坏就不清楚了。


C语言编程中怎样才能使一个程序暂停下来?
语句终止整个程序:#include<stdio.h>然后使用 exit(0); 这个函数。如果有返回值的话,可以用return,如果无返回值的话可以用exit(0)C语言程序暂停步骤:1、在运行C程序时,还没有来的及看到结果程序就执行完了,因为那可是计算机的速度。2、好多朋友选择在main函数尾部再加一条语句(如getch())...

C语言编程, 使从键盘中输入的三位数倒着输出。
C语言:从键盘输入一个三位数,以逆序输出。例如:输入456,输出654 如图:

C语言编程, 使从键盘中输入的三位数倒着输出。
可以用取余%和整除\/符号分别求出每位上的数,然后逆序输出,代码示例如下 include<stdio.h>int main(){int n,m,a,b,c;scanf("%d",&n);a=n\/100;b=(n\/10)%10;c=n%10;m=c*100+b*10+a;printf("输出:%d",m);}

C语言编程中怎样使数字输出格式为分数
1、C语言没有分数,只有实型的float或者double,输出时是printf("%f",a)。2、C语言中有float单精度和double双精度两类可以有小数部分的实型变量。一般,单精度型占4个字节(32位)内存空间,只能提供七位有效数字;双精度型占8 个字节(64位)内存空间,可提供16位有效数字。

C语言编程中使主板喇叭鸣叫的方法?
OUT 61H AL 2,声音开关:由8255的PB口控制,PB0=PB1=1,开;(PB0=0或PB1=0),关 IN AL,61H AND AL,0FCH OUT 61H,AL ;关闭声音(PB0=PB1=0)其中一个是 OR AL 0FCH 一个是 AND AL,0FCH 显然会的倒不一样的结果,照2中关闭声音(PB0=PB1=0)条件的话2应该是...

在C语言编程中什么时候需要用fflush(stdin)?
首先要明白,从键盘输入的数据会先存到缓冲区,然后在存放到内存中。但是数据存放到内存中之后,缓冲区的数据并没有释放。如果不给电脑一个清空缓冲区的命令就会造成输入无效的情况。所以需要用到fflush(stdin)释放缓冲区。具体在C语言中主要表现在getchar()等从键盘单个或逐个数据读取的函数上。

为什么C语言编程中使用指针不当会导致严重后果?会使机器硬件损坏?_百度...
因为指针不像我们平时用数组那么直观 而且随着指针指向的不同 对应数据也相应改变 如果使用不当 会出现连自己都不知道具体对应什么东西 使程序跑飞 报错 相当的常见 机器硬件一般是不会损坏的只是烧进去的程序运行错误

C语言中的SWITCH是什么意思?
Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。汉语翻译:n. 开关, 电闸, 转换, 软枝, 鞭子, 道岔vt. 转变, 切换, 摆动, 转换, 使转轨vi. 转换, 变换, 摆动相关词组:switch sb onswitch sb offswitch sth out of sb's handasleep at the switch名词:...

***C语言中调用汇编的方法…***
BASIC、FORTRAN、PASCAL等语言其参数进栈顺序是与参数在参数表中出现的顺序相同,即从右到左;而C语言则相反。2 C语言与汇编语言的接口 2.1 C语言调用汇编子程序 ●在C程序中使用关键字"ExTERn"对函数作显式说明。●参数传递顺序是按其在参数表中出现的顺序的反序被压入堆栈中,即第一个参数最后进入...

%*c 在C语言编程里是做什么用的??
用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。C语言版本 目前最流行的C语言有以下几种:·Microsoft C 或称 MS C ·Borland Turbo C 或称 Turbo C ·AT&T C 这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使...

海南藏族自治州17868998881: 为什么C语言编程中使用指针不当会导致严重后果?会使机器硬件损坏? -
纳哗艾麦: 因为指针不像我们平时用数组那么直观 而且随着指针指向的不同 对应数据也相应改变 如果使用不当 会出现连自己都不知道具体对应什么东西 使程序跑飞 报错 相当的常见 机器硬件一般是不会损坏的只是烧进去的程序运行错误

海南藏族自治州17868998881: 为什么指针是c语言的灵魂? -
纳哗艾麦: 1.他可以直接访问硬件,这是灵活性和效率的体现,程序离硬件越近自然效率越高,当然运用不当也可导致效率低下2.难掌握及太危险,如果对指针理解含混,访问过程不当易导致程序奔溃或隐藏潜在危险

海南藏族自治州17868998881: C语言 为什么这样用指针,系统会警告没有定义? -
纳哗艾麦: 这个是一个典型问题了.从主函数的描述来看,你是想通过f函数改变*p的值然后输出.可是你的函数f对指针p进行赋值的操作不能传到主函数中的指针p中.f中的p是一个局部变量,通过f(p)这一步它只是获得了主函数中p的初值(其实初值也是乱码,你主函数定义p没有赋初值,建议不要这样做),事实上这两个p不是同一个变量.仔细观察会发现你的函数f只是对f中的p进行了赋值操作,并没有对主函数中的p进行操作.所以主函数中的p值没有发生改变.加上你没赋初值(重要),我认为你的系统应该提示的是指针p的值错误.改的方法可以采用return的方式,或者传递参数的时候使用2级指针进行地址操作都是可以的.先说个大概方法,不明白还可以问我.

海南藏族自治州17868998881: C语言指针问题 -
纳哗艾麦: 这位朋友,指针作用可大了,没有学好指针你等于没有学好C语言,指针是C语言的重点和难点.指针能够有效的表示数据结构;能动态分配内存;能较方便的使用字符串;有效的使用数组……指针直接与数据等的储存地址有关,是比较重要的.比如:值传递不如地址传递高效,因为值传递先从实参的地址中提出值,再赋值给形参带入函数计算;而指针则把形参的地址直接指向实参地址,使用时直接提出数据,使效率提高,特别在频繁赋值等情况下(注意:形参的改变会影响实参的值!)至于如何有效运用指针,这只有你的编程经验才能回答你的,呵呵 兄弟跟你说件事情,微软公司核心代码是用指针实现的,你说它的作用如何?

海南藏族自治州17868998881: C语言指针,这样使用为什么不对? -
纳哗艾麦: # include void f(int **b) { int i; i = 10; *b = &i; /*i是局部变量,存放在栈空间,在函数f调用结束后其栈空间被系统回收,所以i的地址就是无效的,也就是main里无法获得i的值*/ } int main(void) { int *a; /*a是指向int型的指针,f函数要求传入指针的指针,a已经是指针了,只要对a取地址即可,改成f(&a)*/ f(&*a);//这样返回到f函数为什么错了? printf("%d\n", *a); //逻辑错误f函数使用完后释放掉,应该是没法读取i的值 return 0; }

海南藏族自治州17868998881: C语言的 指针问题 -
纳哗艾麦: 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序.指针极大地丰富了C...

海南藏族自治州17868998881: 为什么说指针是 C 语言的精髓? -
纳哗艾麦: 因为C语言最重要的一点是可以直接访问内存地址(任意的地址,但出错不出错是另一回事),而指针是保存这种值的变量就非常重要.C语言中的很多东西,实际是受限制的指针,比如数组名和函数名.比如,指针在C语言中的一个很重要的用途是动态绑定(运行时绑定),动态绑定在C++、C#这些更高级的语言中以虚函数的方式实现,但是在C语言中没有虚函数的概念.如运行时,才去判断当前环境(比如系统版本、不同的许可证、有没有相应的DLL等),用LoadLibrary和GetProcAddress调入不同的DLL中的不同函数赋值给函数指针.

海南藏族自治州17868998881: C语言 为什么不用指针 -
纳哗艾麦: 什么时候用指针,什么直接用变量要看具体的情况.用指针速度比用变量会有所提高,那是指传递结构体等大型变量时.这时用指向结构体的指针来代替结构体变量可以减少结构体拷贝的过程.比如:struct A { int n; int m; }; int fun1(struct A x) { ...

海南藏族自治州17868998881: C语言中,如果用指针随便改变计算机c盘一些地址里的内容,会不会把系 -
纳哗艾麦: pa=&a;句是将指针*pa指向变量a.pa存放的是a的地址,*pa其实就是a,可以理解为把a换了一个名字表示.*pa=20就是对a进行赋值操作,等于a=20;a的值当然改变了.看看指针的知识吧!

海南藏族自治州17868998881: 浅析C语言指针使用中的几个常见错误 -
纳哗艾麦: 一、指针未指定变量就使用指针;二、指针可能越界; 三、分不清指针和变量的关系

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网