您的位置:

c语言中int赋值,c语言int赋值语句

本文目录一览:

C语言里:为什么不能将int型变量直接赋值给指向int型变量的指针

能,一定能。但你int *p;*p=7;这样不行。为什么呢?因为“能直接给指针指向的数据”赋值,而你这里的p还没有指向,所以不能赋值;这种指针有个名字叫“悬浮指针”,俗称野指针,是不能给它赋值的。

C语言int 赋值问题

因为你要求它输出的是长整型(也就是64位的整数),

而你提供的参数是整数(只有32位)。

int a=40000;

只对4个字节进行了初始化,而输出时,将其当成了

一个8个字节的整数,换句话说,它还使用了另外4个你

没初始化的字节,所以当这4个已初始化的字节与4个

未初始化的字节合为一个8字节的长整数时,其值是不

确定的,也就得到了你看到的这个值(实际上,也可能

是其他值)。

楼上调试通过了,是因为在调试环境下,数据区会被清零,

这样相当于另外的未初始化的4个字节已被设置为0了。

为了验证上面的猜测,你可以看看下面这段代码的结果:

int c = 0;

int a = 40000;

int b = 0;

printf(\"%ld\",a);

在未调试时,看看它的输出结果是否40000;

然后改动c=1或b=1,再试试输出是什么。

祝你好运!

c语言,int赋值给char

可以按照下面代码示意的内容操作,即可完成赋值:

char c[4];

int i=100;

*(int*)c = i;

也可以使用memcpy,示意代码如下:

memcpy(c,i,sizeof(i));

推荐使用第一种方法,这样当要将值回传的时候,只需要按照下面的操作即可

i = *(int*)c;

灵活使用指针类型转换,可以极大的简化程序代码,这个问题即是一个好例子