本文目录一览:
- 1、C语言中定义变量时在变量前面加2个星号是什么意思
- 2、c语言 定义数组前加个星号什么意思?具体说一下。数组指针难道就是这样定义,初始化的?那数组名就是c
- 3、c语言中,数组名的前面加*, 如a[3][4]; *a输出的是什么结果
C语言中定义变量时在变量前面加2个星号是什么意思
C语言在定义变量时加两个星号是表明这个变量为二级指针
C语言中在定义变量时使用 * 号是为了表明该变量为指针
指针有分一级指针,二级指针,三级指针等,有几个 * 号就相当于是几级指针
c语言 定义数组前加个星号什么意思?具体说一下。数组指针难道就是这样定义,初始化的?那数组名就是c
char *ch[4]={"red","green","blue"};
这句话的意思是这样,定义一个指针数组ch[4],这个数组里面每个元素都是指针,这些指针是r、g、b这三个字符串的头指针,还有一个是指向“\0”的作为字符串的结束标志。
简单点说,这样的定义是定义一个二维字符数组,数组的第一行就是第一个字符串"red",第二行是"green",第三行书"blue",第四行是"\0"。之后就可以用ch[0][1]表示第一个字符串的第2个字母,这里就是e,ch[1][4]表示第二个字符串的第五个字母,这里就是n。
c语言中,数组名的前面加*, 如a[3][4]; *a输出的是什么结果
由于a[3][4]是个二维数组,数组名是数组的首地址,也是一维a[3]的首地址,也是一维第一个元素a[0][0]的首地址,因此a a[0] a[0][0]三个的地址是相同的,那么*a在这里代表什么呢,*在这里代表的是取值符,而不是指针符号,由于a是个二维数组,*a代表的是取第一维的首元素,而这里一维里的元素本身又是一个一维数组,因此在a的第一维中是存放着三个一维元素的首地址,显然*a取到的就是第一维里第一个元素的首地址了,*(a+1)就是取到第一维里第二个元素的首地址了,你可以建一个一维数组int arr[] = {1,2,3}测试一下,在一维数组中,*arr代表的就是取第一个元素的值,它的值是个int型数值,也就是第1个元素1,而二维数组中的a[3]里存放的是三个元素(3个一维数组)的首地址,因此得出一个结论,二维数组里的第一维就是一个指针数组,每个指针指向三个元素(3个一维数组)的首地址。从而**a就是取第一维里第一个元素(1维数组)里的第1个元素的值。