如下的C语言函数输出变量的地址为什么会是这样?
c语言 输出结果为什么会有这样的不同
主要原因在于,对相应类型数据,没有指定对应的格式说明,引起的错误.指定正确的格式后,就不存在这个问题,请看下面.
c语言中为什么printf输出变量值的时候不要加地址符&,而scanf中却要加上
这是因为使用C语言定义的标准函数,c语言开发时就这么规定的,没有太多的为什么(当初开发C语言的时候也可以不这么写).printf输出变量值的时候不要加地址符&,而scanf中却要加上.我们使用的时候记住它,就行了.有时也有特例:数组名本身就代表地址,就可以不用加取地址符&了(可以不加,加了也不错). char s[100]; scanf("%s",&s);
C语言实现strcat函数,为什么会有这样的输出?
这是由于你的a数组的长度不够引起的,你定义a的时候没有指定长度,所以他的长度正好为能容纳下"hello"的大小,你指定一下就好了比如char a[100] = "hello";另外,在strcat函数的第二个循环之后,加上对这整个字符串的结束,*p='\0';,这样应该就不会出现那个问题了
C语言中scanf函数的变量为何要用&表示首地址呢,不是在编译时变量就与地址对应了么?
C语言中有一些规定我们不需要完全弄清楚它到底为什么.就好比&这个符号一样,一个表示取地址符,两个&&就表示逻辑与.你非要搞清楚它为什么这样吗?你只要知道&是取地址,scanf函数就这样用就行了.再复杂的你就要去研究stdio库中中scanf的写法了.把精力放在有用的地方上吧.
c语言在中的printf函数,为什么他的输出列表可以是一个数组名(即一个地址),而通常见到的都是变量名.
去网上搜一下printf()函数的原型.我记不太清了.printf()函数的输出是由格式化控制符来控制的,它本身不知道你要输出的是什么类型的数据,所以这个函数设计为...
C语言中在输出函数时会有这样的形式:printf(f(%g)=%g\n",x,y),求详细的解释啊啊啊啊.
这里f只是一个符号,换成什么都可以举例说明一下吧,就说x = 1;y = 2的时候输出结果吧:输出结果:f(1)=2就这么简单f只是自己用一个东西代表函数的意思,其实没有什么意思
c语言,为什么会出现这种情况,第二个输出是函数返回后的puts输出的
字符串b没有字符串结束符'\0'而你printf是单个字符循环输出的 所以没这个问题修改方法是puts(b);之前加一句b[i]=a[0];b[i+1] = a[1];b[i+2] = a[2];b[n] = '\0';puts(b);谢谢采纳
2、使用scanf函数时,输入项为何必须是变量地址而不是变量名?
因为scanf()函数要改变一个变量的值,而在C语言中要想在被调用的函数中改变调用函数的变量值,就必须通过指针传递这个变量的地址.
C语言变量的地址
举个例子void func(int * p){ p++; //对指针的值的改变不会影响到a *p=b; //函数返回后a的值不变}void func(int *p){ *p=b; //b为任意数,函数返回后a=b;}变量a一定义,它的地址就确定了,它的地址是不能改的,但是你可以对地址指向的内容作修改,就像第二个函数一样
变量地址到底是什么意思啊 C语言 通俗点解释下 O(∩ - ∩)O谢谢
变量是存放东西的,那么为了找到这个变量,肯定要给他一个标记,就好比你家的门牌号码一样,我要去你家,我按照门牌号就找到你了 我们的门牌号可能很复杂,比如XX省XX市XX街道XX小区XX栋XX号 变量的地址就简单多了,就是一个数字