(以三维数组为例)
1.定义:数据类型 数组名[层][行][列]
2.大小:层数*行数*列数*sizeof(数据类型)
定义的时候 arr[][3][4]亦可 (离数组名最近的2可省略)
字符串——char *arr=’’hello’’/char arr[]=’’hello’’?即 char arr[] = { 'h','e','l','l','o' ,’\0’};
(字符串结束标志为\0)数字0等同于\0,但是不等同于’0’
前者ASCII码值为0,后者为48。
?
?
2.定义字符数组存储字符串
输入helloworld会报错,因为越界了。注意scanf遇到空格和换行就会结束。
3.字符串拼接
替换了有效字符串但缺少了\0
ch3[i+j]=0是字符串结束符
4.字符数组和字符串的区别
(1)c语言中没有字符串这种数据类型,可通过char的数组来替代。
(2)字符串一定是一个char的数组,但char的数组未必是字符串。
(3)数字0(和字符’\0’等价)结尾的char数组就是一个字符串,但如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char的数组。
可通过调整占位符控制数据大小,从而解决越界问题。
5.字符串的输入输出
(1)gets()
*gets(str)与scanf(“%s”,str)的区别:
前者允许输入的字符串含有空格;后者不允许。
*由于scanf()和gets()无法知道字符串s大小,必须遇到换行符或读到文件结尾为止才接收输入,因此容易导致字符数组越界(缓冲区溢出)的情况。(定义的时候大一些)
通过正则表达式也可以用scanf(格式化输入)获取带空格字符串。
(2)fgets()
在读取输入的字符串的时候,同时把用户输入的回车也作为字符串的一部分。通过scanf和gets_s输入一个字符串的时候,不包含结尾的”\n”,但通过fgets结尾多了”\n”。fgets()函数是安全的,不存在缓冲区溢出的问题。
*也可以接收空格。
*获取字符串少于元素个数会有\n,大于等于时没有\n。
(3)puts() ???????自带换行 ?puts(“”);(换行)
(4)fputs()
(5)strlen()计算有效字符长度 导头文件 string.h
1.函数的作用:
(1)函数让程序更加模块化,从而有利于程序的阅读、修改和完善。
(2)省去重复代码的编写,降低代码重复率,避免冗余。
2.函数的分类:
(1)系统函数(库函数),由编译系统提供,无需自定义。
(2)用户定义函数。
3.函数的调用:产生随机数
4.调用时的五要素:
(1)头文件:包含指定的头文件。
(2)函数名字:函数名字必须和头文件声明的名字一样。
(3)功能:需要知道此函数什么功能之后才调用。
(4)参数:参数类型要匹配。
(5)返回值:根据需要接收返回值。
买彩票双色球