C语言指针变量为什么要赋初值?
发布网友
发布时间:2023-05-03 09:24
我来回答
共2个回答
热心网友
时间:2023-10-19 06:03
1、给指针变量赋初值在语法上是没有错误的,编译执行也可以通过,但是一旦代码量增多后,很容易造成指针的错用,为了防止这一问题最好将指针变量定义的时候就置成NULL,这样做是为了代码安全着想。
2、指针定义后就会随机指向一个位置的,编译的时候也不会提示错误,程序短很容易找出来,长了多了就难找了,所以这是一个好习惯吧。
热心网友
时间:2023-10-19 06:04
其他回答(4)错误:40411级2012-02-10使用指针必须要初始化,要有一个明确的指向是有目的性的。之后再移动更改才不会造成混乱热心问友2012-02-10不给指针变量赋初值在语法上是没有错误的,编译执行也可以通过,但是一旦代码量增多后,很容易造成指针的错用,为了防止这一问题最好将指针变量定义的时候就置成NULL,这样做是为了代码安全着想。
指针定义后就会随机指向一个位置的,编译的时候也不会提示错误,程序短很容易找出来,长了多了就难找了,所以这是一个好习惯吧。
C语言指针变量为什么要赋初值?
因为指针不初始赋值的话会随机分配一个内存地址,如果后面的代码直接使用的话会出错,C编译器为了不让这种情况发生所以去检测有没有不初始化的指针,其实就是编译器搞得鬼。
为什么c语言中* p= a是指针赋值?
c语言中*p=a是指针变量赋值语句,这种写法有两种可能意思:1.指针变量定义时的初始化赋值 int a[10];int *p=a ; //这时的a是个地址,如:数组名或指针变量,表示定义指针变量p,同时,p指向地址a。 这里的*是跟随int的,用来表示p变量是int *类型。2.指针变量定义后,给指针变量所指内存中的数...
c语言中定义指针变量时,赋值和赋初值有什么区别?
赋初值,也就是初始化,只能在定义的时候操作,形式为 type var_name = init_value;其中=init_value就是赋初值了。赋值,是在定义后,改变变量的值,形式为 var_name = value;二者的效果是类似的,都是把变量值改变。但在C语言中,编译出的代码有所区别。其中赋初值的效率会更高。
C语言指针变量的赋值和做函数的参数
1、指针变量的赋值,分为定义时赋值(初始化)和单独赋值,如:int x ;int * px=&x ; //定义时赋值,也称初始化,注意这里的*是跟随int的,即变量px是int *类型变量! 实际上的赋值语句是px=&x ;int * py ;py=&x ; //单独赋值,将py指向x*py=10 ; //这里的*,是引用指针中的数...
C语言指针的赋值问题
指针在用要注意初始化,例如:int *p;p为指针,地址是未知的,如果直接赋值 p=a;这样编译可以通过,但是会产生警告,p的地址是随机分配的,这样对未知的地址赋值很危险,可能会覆盖掉某些重要数据,所以避免这种危险,在定义指针时注意初始化,也就是赋值。可以int *p=&a;或者int *p;p=&a;然后再...
C语言,若有int i; *p=&i ; p=1000; 则可以给变量i 赋初值1000。 这句话...
指针变量p的意思就是说p的值是一个地址。若是想要知道p指向的那个变量的值,则需要用*p。本句*p=&i,就是把变量i的地址赋值给p(也说p指向变量i)。这样声明完毕之后:p代表变量p内存放的地址,也就是变量i的存放地址;&p代表变量p的地址;p代表i的值。第二句话:p=1000;这是给变量p赋值,...
C语言中的指针为什么会改变变量的值?
pa=&a;句是将指针*pa指向变量a。pa存放的是a的地址,*pa其实就是a,可以理解为把a换了一个名字表示。*pa=20就是对a进行赋值操作,等于a=20;a的值当然改变了。看看指针的知识吧!
c语言求1到100的累加和的题目中为什么sum初始值要设为0呢?
如果不赋初值,那么在有些编译器里面是不会自动给你生成一个零值。那么在之后直接使用的时候就会导致错误。尤其是指针,如果说不赋初值就直接使用,指向的内容是不确定的,很可能导致程序错误,甚至是系统错误。所以在声明变量的时候就应该赋予一个初始值。这样也方便检查错误.所以,这个sum应该赋初值0.以...
问几个C语言里很多人没注意过的问题
name变量它是一个指针,你把一个文字常量赋值给指针是何用意?要知道char name[20] = "xxx"只是数组的特殊赋值方式罢了。确实要这样赋值,可以用memcpy memcpy(name, "xxx", 3*sizeof(char));3.你这句话是正确的。只要fp正确无误的打开了一个文件,而且文件中确实有数据,那么fscanf就一定会为你...
...不是不可以使用吗 为什么定义一个指针变量 直接输出 结果会是0呢...
如果你定义的指针变量是全局变量的话,那它就是系统默认的值是0 当然,前提是你不对它赋值的话!你自己在看一看吧!