c语言数组的a和a
‘壹’ 在c语言中“a”和‘a’的区别是
C语言中没有String的类型,不过是有String这个概念,C语言的字符串也是char类型存储。
C语言中"a"表示一个字符串,在内存中存储为 'a' '\0' 两个字符,大小为2字节。
C语言中'a'表示一个字符,在内存中存储为 'a' 一个字符,大小为1字节。
扩展知识:
在C语言中可以用char类型的指针来存储任意长度的字符串!比如:char * myStr="Hello,C!"。
如果你用char型数组来存储字符串,请注意你的数组的长度要比你将要存储的字符串长度至少大1.
‘贰’ c语言数组,为什么a和&a[0]取值相同而不是和a[0]取值相同
比如:a[5]这个数组
a就表示数组的首地址,a[0]表示第一个元数,&a[0]表示第一个元数的地址,其实就是首地址,所以a和&a[0]取值相同
‘叁’ c语言中二维数组里a和a[0]有什么区别呀 都是说的首地址啊 不明白有什么区别
区别就是a是一个指针,指向的地址是a[0]的地址,而a[0]就相当于一个变量,就是&a
‘肆’ 为什么C语言中二维数组的数组名a和*a表示的是同一个值
当定义二维数组a[M][N]时,数组名可以认为是二维指针,其指向二维数组的首地址。
于是a的值就是首地址的值。
而*a,就是a[0],a[0]是第一行的标记,代表第一行的首地址。
在二维数组中,所有元素都是紧密排列的,这样整个数组的首地址,第一行的首地址,和第一个元素的首地址,即a, a[0], &a[0][0] 都是相同的。
于是a和*a的值是相同的。
‘伍’ C语言中一个二维数组 它的数组名是a 那a和*a有什么区别
对于二维数组名a和*a,二者的区别在于类型不同。
对于
TYPE a[M][N];
当使用a时,可以等同于二级指针TYPE **型。
而使用*a时,等同于TYPE*型。
从概念上说,a表示二维数组a的首地址,而*a表示二维数组a第一行a[0]的首地址。这样在使用的时候就有所区别。比如 对a的操作a[4]表示a的第四行首地址,而对*a的操作(*a)[4]则代表第一行的第4个元素,即a[0][4]。
所以a和*a除了值相同外,其它的各方面都是不同的。
‘陆’ C语言中数组指针*a[]与a[]有啥区别
a[]普通的数组,存的每一个元素都是一个普通类型的变量,比如int;*a[]是数组指针,它的每个变量都是指针,比如int类型,每个成员都是int *指针,很多指针元素组成一个数组,而不是普通的变量类型。
就好像普通家庭里组成的成员都是普通人;国务院里组成的成员都是大官,牛逼的人,呵呵 ;指针算是牛逼的人,但终究都是平民演变而成的,含义都是一样的
‘柒’ C语言一维数组a和&a的区别
简单的说,a是数组首元素的地址,即a 等于 &a[0]
&a是整个数组的首地址。
这两个值相同,但代表了不同的意思。如:a+1,偏移的是一个数组元素的大小,而&a+1,偏移的是整个数组的大小
‘捌’ C语言中,定义一个数组int a[8]; 问a和a[0]什么区别
a是数组的首地址,a[0]是数组的第一个元素
前者是int*
类型,后者是int
类型
联系:a
=
&a[0]