int main()
{
cout << “this is the first example” << endl;
return 0;
}
//更加正式的用法是
//int main(int argc,char *argv[])
argc是命令行总的参数个数
argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数
来自
int main(int argc, char* argv[])
{
int i;
for (i = 0; i cout< cin>>i; return 0; } 执行时敲入 F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE aaaa bbb ccc ddd 输出如下: F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE aaaa bbb ccc ddd argc记录了用户在运行程序的命令行中输入的参数的个数。 arg[]指向的数组中至少有一个字符指针,即arg[0].他通常指向程序中的可执行文件的文件名。在有些版本的编译器中还包括程序 文件所在的路径。 //几种0的用法 a、整形0 主要是赋值 和 判断 int num=0; if(num==0) b、空指针NULL 注意指针与整形类型所占内存是一样的 为4个字节 32 位 // // c、字符串结束标志 ‘\0’ 0000 0000 作为一个字符只占8位字符 d、逻辑FALSE/false //false 是布尔变量 二进制为0 //FALSE 为32位 0000000000000000 0000000000000000 int main() { float *num = NULL; int *a = 0; // int *bnum = 1; 错误 1不是地址不能初始化指针 } (1) 不知道运算符的高低关系 就多使用括号 注意:if(nvalue=0) //是正确的 将nvalue的值赋为0 然后判断 将不会执行 (2) 函数参数还是操作符中的操作数 表达式的次序是不确定的 每个特定的机器和操作系统以及编译器都不一样 必要时可以用NULL初始化指针 在C++中可以使用nullptr初始化指针 int num1 = 10; int num2 = 20; if (++num1, –num2, num1 > 10 && num2 > 10) Num1变成了11 Num2变成了19 判断发生在第三个逗号 Int j=10; Int i=0; while(++i,j–) { } 只要j不为0,就一直执行 C++保证逗号表达式都被执行,但是只判断最后一个表达式的值 在处理字符串是,使用strcpy、strcat、等函数的时候,要注意缓冲区的长度,防止内存泄漏 防止边界溢出,在使用数组时,一定要清楚数组元素个数,以及边界位置 在使用指针时,防止野指针问题,以及指针未初始化问题,以及失效后未设置NULL 解决办法 (1) #ifndef __something_h__ #define __something_h__ #endif (2) #pragma once (1)结构体首地址能被最宽基本成员所除 (2)结构体每个成员相对于结构体首地址偏移量都是自身成员的整数倍 (3)结构体总体大小为结构体最宽成员大小的整数倍,没有就填充 实际操作中可以使用保留字节形式显示的对齐,以空间换取时间(提高存取效率) 强制类型装换可能带来错误,并且很难发现 比如有符号和无符号数的转换 C++提供了四种新的转换格式 Const_cast 用于类中去除模型属性 const、volatile、__unaligned 将a的值转换为T的对象指针 Dynamic_cast 将一个类转换为另外一种类 Reinterpret_cast Static_cast ++a, a++ 相比于后缀表达式 前缀表达式效率更高 原因是前、后缀表达式做了函数的重载 后缀表达式在重载是构造一个零时对象从而消耗时间 在一般使用时,前后差别不大 自定义时,需要注意能用前缀就用前缀
© 版权声明 本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如有侵权请联系网站管理员删除,联系邮箱1856753@qq.com。