1楼:愤怒de翔小果
在函数fx中,形参*b是一个int型指针,而在调用该函数时,b不是指针类型,因为形参和实参类型必须一致,故需在b前加一个&,即&b,表示b的地址。
在这道程序中,首先a=7,b=-4;
第一次进入循环后,a=0,此时调用fx函数,首先将a+a=0值给了c,又通过指针将a值改为3,再将0-3=-3的返回值给了b;
此时a=3,此轮循环结束,a++,a值为4,退出循环;
输出a,b,4,-3,有什么不明白吗
c语言中a++与++a的区别是什么?详细一点,谢谢!
2楼:匿名用户
a++ 是先返回a的值,再执行++运算。
++a 是先执行++运算,在返回a的值。
例如:#include
int main()
3楼:睢辰丁逸秀
a=7a++
先使用a的值,a在自增
++a先自增在使用a的值
b=a++
;//b=7
c=++a;//c=8
4楼:疲惫的龟
a++代表先取值,后运算。
++a代表先运算,后取值。
a=1;
如b = a++;
得b = 1
若b = ++a;
得b = 2
5楼:匿名用户
一个用了再加1,一个先加一再用
c语言中,a 和a[] 有什么区别
6楼:泣富贵塔婵
'a'是一个字符,"a"是两个字符,'a'和'\0'
比如,下面这个例子:
char
a1[1]=;
char
a2[1]=;
前者a1[0]='a',能编译通过
后者编译通不过,因为a2是一个元素的数组,而"a"有两个元素,分别是'a'和'\0'
补充:'aa'这是错误的写法,单引号是字符的引号,它只能引一个字符的"aa"这是正确的写法,双引号是字符串的引号,它有三个字符:'a','a','\0'
7楼:路温柴倩
1、本质区别
双引号里面的是字符串,
而单引号里面的代表字符。
2、输出区别
str=
“a”输出的就是a这个字母;
str=
‘a’输出的测试65
3、底层区别
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
扩展资料:
c语言是一个有结构化程序设计、具有变量作用域(variablescope)以及递归功能的过程式语言。
c语言传递参数均是以值传递(pass
byvalue),另外也可以传递指针(a
pointer
passed
byvalue)。
不同的变量类型可以用结构体(struct)组合在一起。
只有32个保留字(reserved
keywords),使变量、函数命名有更多弹性。
部份的变量类型可以转换,例如整型和字符型变量。
通过指针(pointer),c语言可以容易的对存储器进行低级控制。
预编译处理(preprocessor)让c语言的编译更具有弹性。
8楼:新来的文盲
a比a少一维,我具体给你解释下。
几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。
比如说a[0]=2,a[1]=1,a[2]=3,组成一个一维数组,这就是a.但是,你要注意,a不是直接把这些东西都存着的,a只存首地址。
假设定义了一个二维数组a[3][3].这时候a[0],a[1],a[2]就不再是元素了,而代表的是一个有三个元素的一位数组,而此时的a就是一个二维数组。如果感觉这个有点困难没关系,等学习了指针什么的久很好理解这个了。
再说说你给的程序,你是不是在疑问为什么gets()直接给str1 就可以了?还有那个输出函数,为啥只用给str1就可以?
这得给存储方式有关,字符串就是字符的二维数组,gets()需要输入字符串的首地址,这个还算好理解,因为你应该学过了scanf()了,二者差不多,关键是为什么输出函数直接就写了str1呢?printf()之前你学的一般都是(printf("%d",a[1]));这种类型的。这里为啥要填一个地址参数呢?
这是因为你前面是%s s代表字符串,字符串本身就是二维的,因此,你当然不能只给他一个单独的元素了,那么,你给了首地址他如何知道你这个字符串是啥呢?因为字符串都是顺序存储的,更重要的是字符串在结尾处有个标志“/0”,因此,你只要给力他首地址,他就知道从**开始,从**结束了。
纯手打,望采纳。
9楼:司空曼华郎霜
引号引起来说明是字符。
不因起来说明是变量名。
printf("%c",a);
printf("%d",'a');比较两者的区别。
上面是a的变量内容。
而下面是a的ascii码,97.
10楼:樊成仵辰
在c语言中,
1.单引号是字符的意思:‘a’,a就是一个字符;
2.双引号就是
字符串的意思:”abd“就是一个字符串。
11楼:鄞兰英裔娴
定界符不同,字符常量用的是单直撇,字符串常量则用双引号长度也不同,字符常量只能有一个字符,也就是说字符常量长度为一,而字符串常量可为0,也可为任意数。即使字符串常量字符数量为一,长度也不是一。
例如,字符串常量"h"(这手机没双引号)
则长度为2,字符就是h\0
12楼:匿名用户
an和a的区别,用法区别
13楼:匿名用户
char str1[5]; //表示定义了一个字符数组,即可以对应存储str1[0]-str1[4]个字符
gets(str1);//单独使用了str1,str1是数组的名称,代表了数组的起始地址,调用gets()函数时参数应该是地址值str1
printf("%s\n",str1);// 输出格式控制为%s,表示输出字符串,如果要输出一个连续的字符串,后面应该使用地址str1;如果格式控制字为%c,表示输出单个字符,这时候就应该是str1[0]或其他
14楼:匿名用户
char str1[5]; 表示声名一个数组,其长度为5(也就是所它最多能容纳5个char型元素)
gets(str1);获取用户的输出,注意不要超过4个字符,否则就会数组越界。其中的str1其实就是数组的地址。gets的函数原型为char *gets(char *s);其功能就是将用户的输入存入str1的数组中。
printf("%s\n",str1);将str1中的内容打印出来。
int a[5]表示声名一个数组。而a就是这个数组的地址(也是数组第一个元素的地址)。
15楼:匿名用户
a表示的是存储数组a[..]的首地址,而a[..]表示的是这个字符的值。
拿旅店比喻:你住在302房。
那么a就表示302这个门牌号,而a[..]就表示你。假设服务员要叫你吃饭,就得先找到302这个房间,然后再把你请到大厅吃饭。
操作系统无论是存储数据还是读取数据,都是先找到数据的首地址!
16楼:匿名用户
像程序里面的str1[5]表示一个长度为5的字符数组,str1表示数组的首地址,也是第一个元素的地址
17楼:匿名用户
名字指的的 a的首地址
a == &a[0];
这两个都表示同样的地址。
c语言中'a'和"a"有什么区别?
18楼:哇哎西西
1、本质区别
双引号里面的是字符串, 而单引号里面的代表字符。
2、输出区别
str = “a”输出的就是a这个字母;
str = ‘a’输出的测试65
3、底层区别
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
19楼:高金山
'a'是一个字符,"a"是两个字符,'a'和'\0'
比如,下面这个例子:
char a1[1]=;
char a2[1]=;
前者a1[0]='a',能编译通过
后者编译通不过,因为a2是一个元素的数组,而"a"有两个元素,分别是'a'和'\0'
补充:'aa'这是错误的写法,单引号是字符的引号,它只能引一个字符的"aa"这是正确的写法,双引号是字符串的引号,它有三个字符:'a','a','\0'
20楼:周肆爻
定界符不同,字符常量用的是单直撇,字符串常量则用双引号长度也不同,字符常量只能有一个字符,也就是说字符常量长度为一,而字符串常量可为0,也可为任意数。即使字符串常量字符数量为一,长度也不是一。
例如,字符串常量"h"(这手机没双引号)
则长度为2,字符就是h \0
21楼:匿名用户
在 c 语言中,
1.单引号是字符的意思:‘a’,a就是一个字符;
2.双引号就是 字符串的意思:”abd“就是一个字符串。
22楼:匿名用户
'a'是字符,在内存中表示为0x61,存储空间为1个字节
"a"是字符串,在内存中表示为 0x61 0x00 ,存储空间为2个字节
23楼:匿名用户
楼上的回答很好!!!
对于字符和字符串没什么好解释的!!!
建议采纳楼上的回答.
另外,回去多看看书,多练习!!!
24楼:摘一把青梅煮酒
字符串有结束符 \0
C语言a b和a b的区别,C语言,++a+b和++b+a有什么区别
1楼 匿名用户 自增对象不同 a b 最后自增的是b a b 最后自增的a b c语言, a b和 b a有什么区别 2楼 珑月三 a b是先a加1,然后再加b b a是先b 1,然后再加a 3楼 亱風 a b是a先自加然后加b b a是b自加,,然后加a 结果一样,但是a 和b的值不相同 c语言b...
a+1和(a+1)有什么区别,c语言中,&a+1和&(a+1)的区别是什么
1楼 匿名用户 语句中,b a 1 指针a 指向的数值加1, a 是数值 b 等于 那个数值 加 1。 或 把a看成数组元素 b a 0 1 a 1 指针 a 1 指向的数值b a 1 可以看成数组元素 b a 1 2楼 匿名用户 an和a的区别,用法区别 java中 a a 1 和a 1 有什么区...
C语言中,a b与b a有什么区别么
1楼 匿名用户 没区别, 是恒等于,不存在赋值问题,单纯比较,怎么写都行,但是 号就不一样了,是右边赋值给左边 2楼 育知同创教育 写法几乎没有什么区别。前后顺序不影响的。 3楼 匿名用户 双等号 是比较运算符, 没有什么区别 4楼 幻世封神 没什么区别,看个人习惯了 请采纳吧 5楼 研凌工控电脑 ...