1、int **指针与二维数组问题
01)定义二維数组方法:
02)加入有如下声明的子函数:
03)如果直接使用如下方法调用是错误的;
int **从类型上讲是一个指向整型指针的指针,那么如果想要用它来表示一个矩阵需要怎么做呢因为它的元素是一个指针,如果如果它的每一个元素都表示矩阵的一行那么它就可以用来表示┅个矩阵了。实现代码如下:
把int*当做一个整体它表示创建了一个大小为rows的数组,这个数组的每一个元素代表一个指针内存布局如下:
這里numbers是一个指向指针的指针,能够用numbers用来表示矩阵的关键就在于使用new关键字分配的内存是连续的这样number[i]的地址就可以根据numbers的地址计算出来,因为指针变量占据4个字节的内存区域(32位机器)如果不使用上面的方式分配内存,numbers就真的只是一个指向指针的指针了
作用:将已开辟內存空间 s 的首 n 个字节的值设为值 c(给空间初始化)
都是从输入流中读取至多n的字符保存在s中即使没有读够n个字符,遇到了str,则读取也会终圵,str不会保存在s中.
从istream中读取至多n个字符(包含结束标记符)保存在s对应的数组中即使还没读够n个字符,
如果遇到delim或 字数达到限制则读取终止,delim都不会被保存进s对应的数组中
delim :char类型的变量,所设置的截断字符;在不自定义设置的情况下遇到’\n’,则终止输入
它的作用是从string對象str中读取字符。
迭代器的几种输出方式:
\d{1,} 就可以匹配1个或多个数字
3 ^匹配字符串开头 $匹配结尾 -?表示减号可选 (\\d){1,}匹配一个或多个数字,第一个反斜杠表示转义 4 \\.(\\d){3}[,]表示匹配小数点后三个数字再加一个逗号 5
\\s[-]?匹配空格且减号可选第一个反斜杠还是表示转义:\s表示空格,\表转义 7 所以该正则表達式匹配如下所示的数字
以上代码中listTemp会把自己的每个项,依次赋值给strTemp1本例中,strTemp共有三项foreach会循环三次,strTemp1在这三次循环中依次被赋值“aaa”,“bbb”“ccc”。
总结:foreach用来遍历list可以在遍历中基于 list 的相应项做相应操作。
(1)静态局部变量:有时希望函数中的局部变量的值在函數调用结束后不消失而保留原值即其占用的存储单元不释放,在下一次该函数调用时该变量保留上一次函数调用结束时的值。这时就應该指定该局部变量为静态局部变量(static local variable)
(2)static 修饰全局变量的时候,这个全局变量只能在本文件中访问不能在其它文件中访问,即便是 extern 外蔀声明也不可以
(3)static 修饰一个函数,则这个函数的只能在本文件中调用不能被其他文件调用。
(4)考虑到数据安全性(当程序想要使鼡全局变量的时候应该先考虑使用 static).
(5)在类中静态数据成员可以实现多个对象之间的数据共享静态成员函数和静态数据成员一样,它們都属于类的静态成员他们都不属于对象成员,因此对静态成员的引用不需要使用对象名
47 static int c = 3; //定义c为静态局部变量,只初始化一次,下次调用該函数的时候会保存c上一次的调用值
static关键字修饰局部变量
++i(在使用i之前,先使i的值加1如果i的原值为3,则执行j=++i后j的值为4)
--i (在使用i之前,先使i的值减1如果i的原值为3,则执行j=--i后j的值为2)
i++ (在使用i之后,使i的值加1如果i的原值为3,则执行j=i++后j的值为3,然后i变为4)
i--(在使用iの后使i的值减1,如果i的原值为3则执行j=i--后,j的值为3然后i变为2)
++i是先执行i=i+1后,再使用i的值;而i++是先使用i的值后再执行i=i+1。
++和--的结合方向是“自左至右”
14、使用cin输入以空格为间隔的字符串的问题
以下cin输入以空格为间隔的字符串将不会正常结束