首页 >>  正文

c++定义数组指针

来源:baiyundou.net   日期:2024-09-21

卜眨婕1879C++ 字符串指针数组赋值
凌纪辉19758414689 ______ 看清楚以下语句 char *str[30]; char name[30]; str[30]=name; //首先这里越界,先不提越界的事. 首先str是一个指针数组,也就是说str中的每一个成员都是一个指针,比如str[0]是一个指针char类型的指针,str[1]也是,str[2]...str[29]都是一个char类...

卜眨婕1879C++ 数组与指针 -
凌纪辉19758414689 ______ int a[10]; 这里限定长度为10个整数,所以长度为10*sizeof(int) = 40.int *b=a; 由于b是指针,无论是否指向a,指向什么,sizeof(b)等于sizeof(int),32位平台上等于4.以上讨论的问题引发的关于数组名称的问题:数组名本身是个地址常量,但是某些特殊情况下它的语义可以发生改变.例如sizeof(a),这时a表示整个数组对象(这里指语法对象,不是指类的实例)而不是这个常量本身.基于这个语义,对数组名取地址也是合法的,对于数组a来说&a的结果等于a这个地址常量本身的值.这是C/C++标准委员会为了维护语法对象a作为一个左值(l-value)总可以取地址这条原则的妥协.

卜眨婕1879c++指向函数的指针数组的定义和用法
凌纪辉19758414689 ______ 关于这个问题,int(*p)();这是函数指针,intA(),这是函数,p=A或p=&A都行(这是一个很神奇的地方), 同理,指针数组就是int(*p[])();他的指向和前面一样,你让他指向一个函数就行了,像其他数组用法一样,至于使用也是很神奇的,你可以用p(),也可以用(*p)().这些比较奇怪的问题你可以看那些比较有名的书籍,比如C和指针,或C专家编程之类的.

卜眨婕1879C++中如何在class中定义一个指针,指向外面的一个已存在的二维数组?
凌纪辉19758414689 ______ 一个可能的问题: 二维数组作为参数传递给函数的时候,由于在函数内部不知道数组的“宽度”,造成没有办法在数组内寻址.所以在传递二维数组的时候需要在形参中指定二维数组的“宽度”,或者把二维数组序列化为一维数组,自己计算偏移.

卜眨婕1879c++数组与指针
凌纪辉19758414689 ______ a是一个二维数组,它的类型是int (*)[3],p的类型是int *,类型不符,不能赋值. *a的类型是int [3],相当与int *,可以赋值. int **和int (*)[3]是不兼容的,考虑一下指针+1的情况. C/C++里的二维数组就是数组的数组,把它当作一个一维数组,数组的元素是一个一维数组,这样a[0]的类型是int [3],数组名相当于指向数组第一个元素的指针,所以a的类型是int (*)[3],注意小括号是不能少的,因为[]的优先级高于*. int a[2][3],(*p)[3]; p=a; p是一个指向int [3]数组的指针.

卜眨婕1879C++ 指针数组是什么?怎么用? -
凌纪辉19758414689 ______ 指针数组 主要用来指向若干字符串,使字符串的处理更加灵活.同时,我们应该清楚知道,字符串本身就是一个一维数组. 对于指针数组应注意以下几点: (1):数组中的元素均为指针类型数据 (2):在给数组赋值时,表面看到是比如字...

卜眨婕1879指针数组(c语言) -
凌纪辉19758414689 ______ 这是比较简洁的 你可以用二维数组,如下 char name[10][20]; 这样直接就分配10个指针数组 即name[0]-name[9],在c中数组本身就是一个指针 你的程序就是给name[0]-name[9]分别分配了20字符空间 其实就是一个二维数组 如图 name[0]:*************** name[1]:***************.......name[9]:*************** 输出的时候可以直接用name[n][m]输出某个字符 也可以输出字符串 如:printf("%s",name[i]);

卜眨婕1879c++ 数组加减是什么意思 -
凌纪辉19758414689 ______ c++中,定义数组,其实是定义一个指针,操作数组时也是相当于操作指针 如 int i[];等价于int *i; i+2等价于i[0+2]即i[2]所以代码把i[2]的地址赋给了c 但这段代码不太对:i+2是指针,而c是int 应改为 int *c=i+2;

卜眨婕1879C++中指向指针数组的指针数组 -
凌纪辉19758414689 ______ 我知道你的意思了,你是想另外定义一个数组,把那两个数组存进来时吧.int(*a[2])[3]; int(*b[2])[3];//定义了一个数组,此数组中存放的是指向数组的指针,也就是说此数组b的元素类型是int(*)[3] int(*(*c[2])[2])[3]={&a,&b};//这里我又定义了一个...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024