C/C++小知识总结之四

1、

GetTickCount函数

  函数功能:GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。 
  函数原型: 

  DWORD GetTickCount(void);


2、

由 4 字节长(32 位整数)的数字表示的数据。设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。REG文件中一般表现为“a”=“dword:00000001”。DWORD就是双字的意思。

3、

assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用abort来终止程序运行。


4、

(一)(二)(三)是针对char型字符串说的。

(一)strcmp函数  

         strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是:  

                 i=strcmp(字符串,字符串);

         其中,字符串1、字符串2均可为字符串常量或变量;i   是用于存放比较结果的整型变量。比较结果是这样规定的:  

①字符串1小于字符串2,strcmp函数返回一个负值;

②字符串1等于字符串2,strcmp函数返回零;

③字符串1大于字符串2,strcmp函数返回一个正值;那么,字符中的大小是如何比较的呢?来看一个例子。

         实际上,字符串的比较是比较字符串中各对字符的ASCII码。首先比较两个串的第一个字符,若不相等,则停止比较并得出大于或小于的结果;如果相等就接着 比较第二个字符然后第三个字符等等。如果两上字符串前面的字符一直相等,像"disk"和"disks"   那样,   前四个字符都一样,   然后比较第 五个字符,   前一个字符串"disk"只剩下结束符'/0',后一个字符串"disks"剩下's','/0'的ASCII码小于's'的ASCII 码,所以得出了结果。因此无论两个字符串是什么样,strcmp函数最多比较到其中一个字符串遇到结束符'/0'为止,就能得出结果。

注意:字符串是数组类型而非简单类型,不能用关系运算进行大小比较。  

         if("ABC">"DEF")   /*错误的字符串比较*/

         if(strcmp("ABC","DEF")   /*正确的字符串比较*/

(二)strcpy函数  

         strcpy函数用于实现两个字符串的拷贝。一般形式是:  

                 strcpy(字符中1,字符串2)

         其中,字符串1必须是字符串变量,而不能是字符串常量。strcpy函数把字符串2的内容(包括“\0”)完全复制到字符串1中,而不管字符串1中原先存放的是什么。复制后,字符串2保持不变。  

例:    

         注意,由于字符串是数组类型,所以两个字符串复制不通过赋值运算进行。  

         t=s;   /*错误的字符串复制*/

         strcpy(t,s);   /*正确的字符串复制*/

(三)strcat函数

         对两个char型字符串进行合并。第一个字符串必须能保证容纳两个字符串的长度。

        char ch1[33]="what's your name";

        char ch2[]="my name is Jack";

        strcat(ch1, ch2);//得到ch1结果为what's your name my name is Jack


5、

C语言 写一个函数,将一维数组中的元素逆序存放点击打开链接


6、

C++中函数调用时的三种参数传递方式 - Hufei的专栏 - 博客频道 - CSDN.NET

按值传递(pass by value)

地址传递(pass by pointer)

引用传递(pass by reference)  

http://blog.csdn.net/cocohufei/article/details/6143476


7、

定义一个字符串,char man[ ]={"Hello World"};

char型字符串是C语言风格的字符串,它是用数组来保存字符串的的,但是到了C++时代,由于诞生了类,出现了C++风格的字符串,也就是string型字符串。像定义一个整形变量那样使用它,如:

(1)string str=“string型字符串”;, 所以,用string定义的字符串就可以看作是string类的一个对象。if(str==“dog”)可以这么用;

char ch[ ]=“char型字符数组”;if(ch==“pig”)不能这么用。因为ch是一个数组名,而数组名是该数组第一个元素的内存地址,而用引号括起来的字符串也代表第一个字符的内存地址。这两个地址根本不可能相等。

(2)直接可以赋值str1=str2;

(3)直接相加合并str1=str1+str2;


8、

字符串常量:括在一对双引号之内的字符序列或转义字符序列称为字符串常量。例如:“How are you!” “a” “*abc\n\t”它是不可以改变的.例如:char *p="ni hao!";如果你试图改变指针所指向的内容是会报错的.例如:(*p)='h';//运行的话会报错因为字符串常量是放在静态存储区的,这部分内容是不能修改的。

字符串变量:在c中是没有这个概念的,c中如果想将一个字符串存放到变量中,必须使用字符数组,就是用一个字符型数组存放一个字符串,例如:char data[10]="china";这时候,这个字符数组存放了一个字符串,它是可以改变的,例如:data[0]='m';这种操作都是可以的。


9、

string类的赋值函数assign:该函数可以取第二个字符串的任意字符赋给第一个字符串。

string str1= “gh”;

string str2="abcdef";

str1.assign(str2, 3, 1);//从str2的第三个元素开始,取一个字符。则得到的str1为d.


10、

strlen是C函数,它不支持对象,因此string类的对象要调用它的时候要先转换为变量,然后才能使用,如:

strlen(str1.c_str());//首先用str1调用成员函数c_str()将自身转换为一个带"\0"的字符串数组,然后再传递到strlen函数中计算它的可见字符长度;

返回的是字符串结束标志“\0”之前的字符串长度(包括空格),而不是数组长度;

string类的成员函数size()和length()的作用跟strlen一样;

而sizeof返回的是数组的长度,也就是该数组共有多少个元素(包括空格和默认的“\0”)。如:

char str[20]="0123456789";
int a=strlen(str); //a=10; >>>> strlen 计算字符串的长度,以结束符 0x00 为字符串结束。
int b=sizeof(str); //而b=20; >>>> sizeof 计算的则是分配的数组 str[20] 所占的内存空间的大小,不受里面存储的内容改变。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值