c语言中,a 和a[] 有什么区别
1、本质区别
双引号里面的是字符串, 而单引号里面的代表字符。
2、输出区别
str = “a”输出的就是a这个字母;
str = ‘a’输出的测试65
3、底层区别
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
扩展资料:
C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:
子表达式1, 子表达式2, ..., 子表达式n
例如:a + b, c = b, c++
逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。
逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。
参考资料来源:百度百科-C语言
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”,因此,你只要给力他首地址,他就知道从哪里开始,从哪里结束了。
纯手打,望采纳。
几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。
比如说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”,因此,你只要给力他首地址,他就知道从哪里开始,从哪里结束了。
纯手打,望~~。
1、本质区别
双引号里面的是字符串, 而单引号里面的代表字符。
2、输出区别
str = “a”输出的就是a这个字母;
str = ‘a’输出的测试65
3、底层区别
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
扩展资料:
C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:
子表达式1, 子表达式2, ..., 子表达式n
例如:a + b, c = b, c++
逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。
逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。
参考资料来源:百度百科-C语言
C语言中'a'和"a"有什么区别?
1、本质区别 双引号里面的是字符串, 而单引号里面的代表字符。2、输出区别 str = “a”输出的就是a这个字母;str = ‘a’输出的测试65 3、底层区别 用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
C语言中符号a和‘a’的区别是?
a是变量,在程序运行过程中值是可以改变的 'a'是字符型常量,在程序运行过程中没办法改变,只能读取
c语言'a'和"a"有什么区别
结论:在C语言中,'a'和"a"有着明显的不同。'a'和"a"在本质、输出和底层机制上都有所区别,理解这些差异有助于我们更深入地掌握C语言的语法和特性。首先,从本质上看,'a'表示的是字符,而"a"则是一个字符串。'a'被单引号包围,代表的是字符' a',具有固定数值含义,即字符集中的序数值...
c语言中 a[数字]和a[数字][数字] 什么意思
前者表示一维数组,后者表示二维,比如 a[5]表示数组有6个元素,,a[5][5]表示有36个元素。
语文A和A有什么区别吗?
A可能具有更具体的定义和要求。此外,不同的考试或评估也可能采用不同的等级制度,因此在使用时需要结合具体的背景和情境来理解。总的来说,语文A和A在大多数情况下是没有区别的,它们都代表着优秀或高水平的表现。但在特定的语境或情境中,可能会有细微的差别,因此需要根据具体情况来理解和使用。
在C语言中,‘A’和“A”一样吗?为什么?
不一样,'A'是一个字符,“A”是一个字符串,包括两个字符'A'和'\\0'
c语言中 a a'和"a"的区别
‘a’是 单个字符,“a”是 字符串就是多个字符的集合实际上,"a" 等价于“a\\0”;末尾还有字符串结束符
C语言中char *a[ ]什么意思,他和char (*)a[ ]有什么什么区别?
三、指向地址所存储的值不同。对于char**p1,*p1的类型为char*型,而**p1的类型才是char型。对于char*类指针p2,*p2就是char型。char*a="abcd";存于静态存储区。在栈上的数组比指针所指向字符串快。慢 char a[30]="abcd";存于栈上。快。四、内存分配方式 内存分配有三种:堆区和栈区、...
语言学引论 请问【p】[a]、[A]和[§]是什么啊 为什么说是a的变体啊?
《语言学引论》中,\/a\/的变体有〔a〕、〔A〕、〔ɑ〕、〔ε〕4个,与【p】没有关系。现代汉语中的\/a\/音位受语音环境的影响,会出现四个条件变体。这四个音位变体及出现的条件是:1、[a],出现在韵尾[-i、-n]之前,例如:爱[ai],该[kai],安[an],愿[yan]。2、[A],它的后面不带...
a[]和*a区别
1、a++先用后加,++a先加后用。b=a++;先把a的值赋给b,然后a自增1。b=++a;a先加1,然后把自增后的值赋给b。2、a++运算优先级要高于算术运算b*a++,b*a , a=a+1。b*++a,a=a+1,b*a。无论是a++还是++a 运算一次后 a的值是一样的,受影响的是赋值对象。