1、在c++中如何定义一个类型,并且初始化?
注意:所有的类型包括类、结构体、整数等常规类型都可以使用下列方式:指针的方式和 实例化对象的方式。(注意指针方式在使用完成后需要delete [] 指针,防止内存占用过多)
(1)指针方式
只要是前面加一个new关键字,就会产生一个指针;
例如:new int; //定义一个指向整数的指针。
new int(5); //指向整数5指针
new int[5]; //一个指向数组的指针
new int*[6]; //返回一个指针,指向一个数组,数组元素均为指针
理解以下定义:
int** p;
p = new int*[size];
for (int i=0; i<size;i++)
{
p[ i ] = new int[ size_t ]
}
定义一个整数:int *a = new int(); //当然括号中也可以加载一个值进行初始化
定义一个整数数组:int *a = new int[ size ]; //括号内为数组的大小
定义一个类:假设已知类的类型假设为classA,定义一个类A
classA *A = new classA(); //括号中也可以添加参数(类的初始化构造函数参数)
(2)实例化对象方式
int a = int(); //也可以在括号中添加初始化值,相当于之前的写法int a = 5;
int a [size]; //定义数组
classA A = classA() ;//或者classA A;即可。
注意数组的特殊性:
int a[10];
//a本身就代表这个数组的指针(地址),可以cout<< a << endl;查看地址
//a[0] 就代表了数组的元素值
int * b = a;
//b 与a是通用的
//b[0] 与a[0] 是一样的,都代表数组的元素值。
int
2、c++程序中如何进行延时?
让c++控制台程序停下来,实现暂停功能:
windows下:
system(“pause”); //程序在此处停下,按任意键程序才会继续
_sleep(2000); //程序在此处暂停2s后继续执行
getchar(); //程序等待用户输入一个字符回车后继续执行(这招对QT也有用)
Linux下:
getchar();
#include <unistd.h>
sleep(5)//延迟5秒
如果你想延迟一秒以内 那么用
#include <ctime>
void Delay(int time) //time*1000为秒数
{
clock_t now = clock();
while( clock() - now < time );
}
3、字符串
具体建议参考:http://www.runoob.com/cplusplus/cpp-strings.html
(1)C风格的字符串
char* str1 = “abc” ; //使用指针创建一个字符串(这个字符串是一个常量,不可修改)
或者:
char str2[20] = “abc”;
或者:
char str3[] = “abc”;
(2)C++风格的字符串
(3)获取字符串所占内存空间的大小:sizeof函数的使用
例如:
char* str1 = “abc”;
printf(”%d\n”,sizeof(str1)); //得到str1所占内存空间的大小为4,字符串自带结束符
char str2[20] = “abc”;
printf(”%d\n”,sizeof(str2)); //得到str1所占内存空间的大小为20。
在c++中包含头文件#include<string> ;
std::string str = “abc”;
std::cout << sizeof(str) <<std::endl; //会得到str字符串所占内存空间的大小40.
(4)获取字符串有效字符的个数:strlen和length() 的使用。
这两个函数的使用都需要包含头文件#include<string>
char* str1 = “abc”;
printf(”%d\n”,strlen(str1)); //得到str1有效字符个数为3.
char str2[20] = “abc”;
printf(”%d\n”,strlen(str2)); //得到str2有效字符个数为3.
但是如果使用std::string定义的字符串则需要使用length()来获取有效字符个数:
std::string str = “abc”;
std::cout << str.length() <<std::endl; //得到str的有效字符个数为3.
注意:由于字符串也可以看做是字符组成的集合,也可以使用集合的方法来获取字符串的有效字符个数,效果与length()方法是一样的:
std::cout << str.size() <<std::endl; //得到str的有效字符个数为3.