十二月二号

1、大数组定义
数组大小在10的六次方大小时,最好定义在主函数外面,因为主函数内部申请的局部变量来自系统栈,允许申请的空间小,而函数外部申请的全局变量来自静态存储区,允许申请空间大
2、冒泡排序
https://blog.csdn.net/weixin_43719397/article/details/84699890
3、memset和fill
memset(数组名,值,sizeof(数组名))
memset在< string>中,一般值用0或者-1,如果要赋值1可以用fill函数
fill(数组名/开始位置,数组名+i/结束位置,值)
fill函数在< algorithm>中 值可以为任意值
4、puts(s)或者是二维字符数组的一行
输出时自动输出换行
5、strlen和str.length()
两者都是求字符串的长度,但strlen( )的参数必须是char* ;而 str.length( )是string类对象str调用的成员函数,所以它们用在不同的地方;
char* ch=“asdfsafas”;
string str=“adfadf”;
cout<<str.length();
// cout<<strlen(str); 出错
cout<<strlen(ch);
// cout<<ch.length(); 出错
strlen():返回字符数组或字符串所占的字节数
(1)、针对字符数组
(2)、针对字符指针
实际上,当用当数组名作为参数传入时,数组就退化成指针了。它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符’\0’。返回的长度大小不包括’\0’。
6、杨辉三角
https://blog.csdn.net/weixin_43719397/article/details/84702586
7、字符串比大小,返回ASCII码的差值
int strcmp(const chara, const charb)
strcmp()函数是根据ACSII码的值来比较两个字符串的;strcmp()函数首先将s1字符串的第一个字符值减去s2第一个字符,若差值为零则继续比较下去;若差值不为零,则返回差值?

char *p="aBc";
 char *q="Abc";
 char *h="abc";
 printf("strcmp(p,q):%d\n",strcmp(p,q));
 printf("strcmp(p,h):%d\n",strcmp(p,h));return 0; }
  //结果:
//strcmp(p,q):32
//strcmp(p,h):-32

为什么我得到的结果是1和-1?
8、数组作为函数参数,可以直接修改数组,因为实际上是相当于把数组的地址传了进去,直接修改该地址存放元素的值,就是修改数组元素的值,但是不能将数组作为返回值;
在传入时,没有必要写一维数组的长度,例如int a[],就可以了,但是二维数组的行数可以不写,但是列数要写。

#include<iostream>
void change(int a[],int b[][5])
{
a[0]=1;
a[2]=2;
b[0][0]=1;}

int main()
{
int a[3]={0}; int b[3][3]={0};
change(a,b);
}//这是输出就是已经改变的数组;
如果我们想返回一个数组,可以将int c[] 放在change函数的参数里面,就可以直接改变它的值

猜你喜欢

转载自blog.csdn.net/weixin_43719397/article/details/84702296