从这一点,也可以很好地说明为什么指针一定要分类型,不同类型的指针,p+1的含义是不一样的。 上述代码中的p指向了int类型的数组元素a[0],所以p+1代表p的值加2。知道怎么获取其他元素的地址了,那么就可以利用指针p遍历数组元素了。 1 // 定义一个int类型的数组 2 int a[4] = {1, 2, 3, 4}; 3 4 ...
,说明已经通过指针间接修改了数组元素的值,跟指向一个普通int类型变量是一样的。 由于数组名代表着数组的首地址,即a == &a[0],因此第8行代码等价于: // 让指针指向数组的第0个元素 p = a; 1. 2. 内存分析图如下,一个指针变量占用2个字节,一个int类型的数组元素占用2个字节 二、用指针遍历数组元素 1...
若指针 P1 指向下标为 I 的数组元素(或尾后一位置)而 P2 是指向同一数组的下标为 J 的元素(或...
而&a就是一个有4个整型元素的一维数组的指针——就是说在int a[4]={1,3,5,7};的定义后,a是1的地址,a+1就2的地址;而&a的值虽与a相同,但&a是整个数组{1,3,5,7}的地址,&a+1就指向7后面的那个单元了。而int (*p)[4];这种声明恰好就是&a的意思,即p是个指针,指向一个4元...
由于二维数组可以看作是一个包含一维数组的数组,因此可以定义一个指向一维数组的指针 int (*p)[4]。这里的 4 表示指针指向的一维数组有4个元素。 c int (*p)[4] = a; 3. 使用该指针遍历二维数组 a[3][4] 可以使用嵌套的循环来遍历二维数组。外层循环遍历二维数组的行,内层循环遍历二维数组的列。由于 ...
10、C语言中指向由M个元素组成的一维数组的指针。 #include <stdio.h> #include <stdlib.h> int main() { int arr1[4]={32,75,2,10},i=0,j=0; int arr2[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};//相当于3个一维数组组成...
•一个指针变量可以指向一个数组元素int*ptr,data[10];ptr=data+3;/*或者ptr=&data[3]*/ CProgrammingLanguage 假设pt指向了一维数组a,那么C语言规定指针对数组的 表示方法有如下几种。⑴pt+n与a+n表示数组元素a[n]的地址,即&a[n]。•若指针变量pt已指向数组中的一个元素,则pt+1指向同一数组中的...
include <stdio.h>char *get_str(void) //返回值类型为字符指针{ static char str[100]={0};//静态变量初始化,只有在定义时这次完成,且初始化只执行一次。 sprintf(str,"hello world"); return str ;}void main(){ char *p; p=get_str(); printf("%s\n", p );...
答案:因为二维数组名的基类型与“指向指针的指针”的基类型不同,而基类型不同的变量理论上不能相互...
C语言中,说明语句“int(*p)( );”的含义是( )。 A. p是一个指向一维数组的指针变量 B. p是指针变量,指向一个整型数据 C. p是一个指向函数的指针,该函数的返回值是一个整型 D. 以上都不对 相关知识点: 试题来源: 解析 B 正确答案:B 解析:*p是一个指向函数的指针,p表示指针变量名称。 知识模块:...