扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
gets(c[0])输入第一行的字符串
站在用户的角度思考问题,与客户深入沟通,找到任丘网站设计与任丘网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网站空间、企业邮箱。业务覆盖任丘地区。
gets(c[1])输入第二行的字符串,以此类推。
scanf("%s",c[0])输入一行的字符串,以此类推。
既然只传一行,干嘛要用(*)[]型形参?用char *p或char p[]不就足够了?另外,50x1000000的数组大了点,声明全局数组吧,局部数组不支持。
1、要有这样一个malloc产生的二维数组,或者用New产生的也行。
2、不能按照图示代码运行。
3、首先先释放数组的数组。
4、然后我们再释放单个数组。
5、然后我们运行就会发现,数组被成功释放,现在的array地址已经是随机地址了。
不可能达到目的。因为C语言中没有引用这类型,C++才有。另,C/C++都不支持传递数组,只能传递数组的首元素或行指针,所以即使是C++,也只能传递数组指针的引用,而不可能传递数组的引用,因为数组没有引用。
#include stdio.h
int main()
{
char str[][6] = {"abcd", "ABC", "abc"};
printf("str行内元素%d\n", sizeof(*str));//这个会显示出二维数组中每个行的元素个数 (这里是指可容纳的个数)
printf("str总%d\n", sizeof(str));//这个会显示出二维数组中元素的个数(这里是指可容纳的个数)
//其实就是利用了sizeof函数来判断 我们都知道sizeof()用来判断一个类型所占用的字节数的
//所以:你问‘C语言二维字符串数组的行数怎么求啊?’ 你应该是说在定义数组时候没有显示的写出行数,可是此时需要求出行数是吧?
//那么 行数 = 可容纳元素总数(这里是指可容纳的个数) / 行中元素个数(这里是指可容纳的个数)
printf("行数=%d\n", sizeof(str)/sizeof(*str));
return 0;
}
就是考你对二维数组的理解了,别忘了 数组也是c的数据类型之一哦。
只要是数据类型就可以用sizeof判断 其类型占用的内存字节数。
正好c的字符就是占用一个字节啊,所以sizeof返回的字节数=字符个数。
^_^!
二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串。
二维字符数组的定义
二维字符数组的定义格式为:
char 数组名[第一维大小][第二维大小];
如:
char c[3][10]; //定义了一个3行10列的二维字符数组c
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流