十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
二维数组就是每一项都是一个一维数组的数组
成都创新互联是一家集网站建设,溧水企业网站建设,溧水品牌网站建设,网站定制,溧水网站建设报价,网络营销,网络优化,溧水网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
比如
int a[][] = {{1,2,3},{4,5,6},{7,8,9}};
这里的a就是一个二维数组,他的每一项内容也都是一个数组
出错原因是你定义的100个char类型的指针变量但你没有初始化你就s[t][i++]=c;这样肯定出错。你可以将c的地址发给a[t];但你不能这样读s[t][i++];这是错误了!
下面我将char指针变量指向有效空间了!
#include stdio.h
#include malloc.h
int Gettext(char text [],char **s);
void main()
{
char exm[]={ "i would like to ask you if\n you will go with me \n could i? yes! but you should make it quick! \n because i will leave"};
char *s[100];
int i,j,num;
i=j=0;
for(i=0;i100;++i)
s[i]=(char *)malloc(sizeof(char)*100);
num=Gettext(exm,s);
for(i=0;i=num;i++)
for(j=0;s[i][j]!='\0';j++)
printf("%c",s[i][j]);
}
int Gettext(char text [],char **s)
{
int i=0;
int c;
int j=0;
int t=0;
while((c=text[j++])!='\0')
{
if(c!='\n')
s[t][i++]=c;
else
{
s[t][i++]=c;
s[t][i]='\0';
t++;
i=0;
}
}
s[t][i]='\0';
return t;
}
数组是一个由 固定长度 的 特定类型元素 组成的序列,一个数组可以由零个或多个元素组成。 数组是值类型
数组的每个元素都可以通过索引下标来访问,索引下标的范围是从0开始到数组长度减1的位置,内置函数 len() 可以返回数组中元素的个数。
2.类型的打印,结果的第二种打印方式
3.对元素的修改或者赋值
4.判断数组是否相等:长度、类型
4.数组的地址:连续存储的空间
5.数组的赋值、地址、取值
6.数组的默认值
7.数组的初始化
8.数组的逆置
9.求数组的最大值、最小值、平均值
10.对数组字符串进行连接
11.冒泡排序法的实现
12.数组做函数的参数
13.二维数组:赋值和地址
14.二维数组:打印和输出
15. 指针数组,每一个元素都是地址
17.数组的内存分配
是的,c中数组定义时要指定大小。
当然,万事也不是绝对的。例如:1.作为形参的时候,可以不指定,因为在函数调用的时候,数组会转为指针的。2.当为字符串数组时,char ST[]="hello word"这儿定义了一个ST字符数值,不需要你自己去指定大小,系统会自动生成长度为11.
1、数组是多个 相同类型 的数据的组合,一个数组一旦声明/定义了,其 长度是固定的,不能动态变化 。
2、var arr []int 这时arr就是一个slice 切片 。
3、数组中的元素可以是任何数据类型,包括值类型和引用类型,但是 不能混用 。
4、数组创建后,如果没有赋值,有默认值如下:
数值类型数组: 默认值为 0
字符串数组: 默认值为 ""
bool数组: 默认值为 false
5、使用数组的步骤:
(1)声明数组并开辟空间
(3)给数组各个元素赋值
(3)使用数组
6、数组的下标是从0开始的。
7、数组下标必须在指定范围内使用,否则报panic:数组越界,比如var arr [5]int的有效下标为0~4.
8、Go的数组属于 值类型 ,在默认情况下是 值传递 ,因此会进行值拷贝。 数组间不会相互影响。
9、如想在其他函数中去修改原来的数组,可以使用 引用传递 (指针方式)。
10、长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度,看以下案例:
题1:编译错误,因为不能把[3]int类型传递给[]int类型,前者是数组,后者是切片;
题2:编译错误,因为不能把[3]int类型传递给[4]int类型;
题3:编译正确,因为[3]int类型传给[3]int类型合法。
scanf那行里的a[i][j]要写成a[i][j],输入就正常的输入就行了,其实scanf读入数字的时候,数字可以用空格、回车或者TAB间隔,比如说一个2x2的数组,你输入
10 11
12 13
或者输入10 11 12 13都是可以的。