对象数组的数组名是一个常量指针_从左到右取字符串的位数的函数是

对象数组的数组名是一个常量指针_从左到右取字符串的位数的函数是C语言字符数组、指针总结一、 字符串与字符数组c语言没有字符串类型,用字符数组存放字符串。字符指针有以下几种:第一种:C语言中数组名代表的是数组首素的地址,除了一下两种情况&

C语言字符数组、指针总结   一、 字符串与字符数组   c语言没有字符串类型,用字符数组存放字符串。   字符指针有以下几种:   第一种:   C语言中数组名代表的是数组首素的地址,除了一下两种情况: 在函数sizeof(数组名)中,计算的是整个数组的大小。   这里输出10,sizeof(a)表示整个数组所占的字节。 &数组名,这里取出的是整个数组的地址。   这里输出也是10,sizeof(&a数)表示整个数组所占的字节。   第二种:   第三种:   二、常量字符串 常量字符串的内容是不能被修改的。内存中只存在一份,多个字符指针指向相同的字符串,这些指针中存放的地址相同。将其赋值给字符指针时,是把其首字符的地址赋值给字符指针。 三、指针数组   指针数组时存放指针的数组,数组素时地址。   应用:   四、数组指针   数组指针是一个指针,指向的是一个数组。   数组指针 – 指向数组的指针 — 可以存放数组的地址   int arr[10] = {0}; // 定义并初始化一个含有10个素的整型数组,数组名arr:是首素地址(等同于&arr[0] <—> arr)。   &arr: 是数组的地址(也是数组首素的地址),但是&arr 和 arr 和&arr[0]的地址相同,只是&arr + 1是跨过整个数组长度,另外两个地址+1是跨过数组中一个素。   现在我们把&arr存起来,放到一个指针变量中,该指针变量就是数组指针。   即为:int(*p)[10] = &arr;   指针数组与数组指针的区分:   指向char指针类型的数组的指针:   数组的地址和数组名的比较:   数组指针主要用在二维及以上维度的数组   int arr[2][3] = {{1,2,3}, {4,5,6}};   对于二维数组arr,数组名(arr)也是首素的地址,把二维数组看成一维数组,即每一行看做一个素,即第一行是二维数组的第一个素(首素);   简而言之,对于二维数组,数组名是首素的地址;首素是第一行;第一行是一个二维数组。   使用:当把二维数组名作为实参进行传递时,且形参写成指针的形式,则需要一个指针来接收,因为数组名是首素(第一行、一维数组)的地址,而数组的地址应该放到数组指针中。只不过这个数组指针指向的不是二维数组,而是指向第一行(一维数组的,其有3个素,每个素为int),故形参应该写成:int (*p)[3];   因为p指向的是一个数组,所以p+1是跳过一个数组的长度,即指向了第二行。   数组指针作为函数参数:   指针和数组的区分:   int arr1[5]; // arr1是一个包含5个素的整型数组   int* arr2[5]; // arr2是一个包含5个素的int*数组,即指针数组   int *(*p)[5]; // p是一个指向包含5个int类型数组的指针, 即数组指针   int (*p1[10])[5]; // p1是一个数组,该数组有10个素,每个素的类型为:数组指针,该数组指针指向的素有5个素,每个素是int类型。把数组名和方块去掉,剩下的就是素的类型。 数组和指针作为函数参数   一维数组作为函数参数,可以用数组和指针两种形式来接受参数。   二维数组作为函数参数   可以用数组和指针两种形式来接受参数   一级指针作为函数参数   当参数为一级指针时,如果指向的是一个数组,可以用指针来接受,也可以用数组形式来接受   二级指针作为函数参数   形参要写成二级指针的形式,如void fun1(int p) {;}   实参要用指针变量的地址来进行传递,也可以用指针数组的数组名来进行传递。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/51451.html

(0)
上一篇 2024年 9月 2日 下午8:51
下一篇 2024年 9月 2日

相关推荐

关注微信