总结:这里的执行是错误的,赋值也是错误的,因为它是一个不可知表达式。 它仅存在,并且是一个指针变量,可用于存储变量地址。
数组
1.数组感知:静态分配空间(int a[100];分配了400字节)空间利用率低(空间不够或浪费)
malloc realloc动态分配并在不使用时释放。 具有效率高、空间利用效率高等优点。 缺点是开销比较大) b. 占用的内存空间的特点: 连续性(物理连续性)——malloc保证的空间在物理上是连续的吗? (malloc实现原理:一个链表将所有空闲空间链接起来,形成最终分配的空间) 2、如何使用数组: a. 定义一个数组:数组应该定义多大? ——最佳方案:灵活数组 注:变长数组 c99:定义变量。 数组可以使用该变量代替定义数组长度(使用过程中不能改变变量的值)来扩展数组的内存空间)
int n;int a[n ]; 局部变量 - 存储在堆栈空间中 - 未初始化的变量会自动分配随机值。 c89:定义数组时,需要确定其长度。 宏通常用于表示数组的大小,以提高代码的可移植性。
b.如何使用数组:数组名的作用:(数组名:指针常量,保存的是数组第一个元素的地址。需要取地址符号(a +i) 当输入 ) 时输出 * (a + i)。 函数体中定义的数组会退化指针:
printf("&a[0] = %p/n",&a[0]);// 数组的第一个元素 printf("a = %p/n" ,a);//数组第一个元素的地址 printf("&a = %p/n" ,&a);//&a:数组地址
*( &a)=a;一个维数阵列的地址值等于数组的第一个元素。 2D数组:定义:无法省略行,可以省略列。 2-维数组名称的角色名称名称:2-维序列名称:pointter常数(1D数组指针),保存第一个 - 维数阵列地址3D数组:int aaa [2] [2] [2] [2] [2] = {1,= {1,, 2,3,4}},{5,6,7,8}初始服务:2-维数组。 其次连接的字符:两个维数阵列和行的数量。 第三附件:两个维数组的数量和数组线。 输入字符串:
#include #nclude int main(){char strtr [100]; ////请输入n“”); (int i = 0; i printf(“ ktr [%d] =%s/n”,i,*(ktr + i)); // ktr [i];} “%s”,*(*(ptr + i) + j)); // ptr [i] [j]}} (ptr + i) + j)] =&aa; void print1(char *str){printf(“ str =%s/n”,str);} void print2(char( *ktr)[100]){for(int i = 0; i = 0; i for(int i = 0; i printf(“ ptr =%s/n”, *( *(ptr + i) + j); )scanf(“%s”,//第一个元素print1(str); j); int *pi [3] int( *pa)[3]; 数组和指针之间的差异:
序列指针(也称为行指针)定义了int(*p)[n];。 ()优先级。 首先,P是指一个指针,它指的是一个数二维数组。 这个维数阵列的长度为n,可以说是P的步骤。 换句话说,当执行P+1时,P必须跨越N /整数数据的长度。
如果将两个维数组分配给指针,则有必要如下替换。 int a [3] [4]; 它是指一个由四个元素组成的维数阵列。 p = a; //示例2D数组的第一个地址为p(a [0]或&a [0] [0])。 p ++; //执行此语句时,线相交p = p+1;也称为指针,转换为一个维数阵列,也称为指针。
指针序列定义int p [n]; 首先,与p结合以形成一个数组,然后int表示这是整数指针序列。 在此数组中,有一个指针形数组n。 元素。 在此处执行P+1是一个错误,分配以下值也是错误的。 由于p是一个不可接受的表达式,因此只有p [0],p [1],p [2] ... p [n - 1],这些是存储变量地址。可以使用。 但是,可以像以下p = a一样完成。 在这里,P表示指针数组的第一个元素的值和A的第一个地址的值。 在指针数组中替换2D数组:int *p [3];可以实现n层,即,n!= n(k4] 1)。Ludeint Fun(Intum){int S = 1; } else {printf(“输入error/n”);} int main(){int n,结果结果=娱乐(n);“结果=%d/n”,返回0;} 2。
#include //使用递归函数调用方法以相反的顺序输入5个字符。 void Fun(int i,char *p){if(i == 0){propf(“%c”,p [i]); char strt [6];
评论前必须登录!
注册