c1.exe出错(chcfg.exe是什么)

新科网 2024-01-18 08:54 星期四 35 1/18

c1.exe出错(chcfg.exe是什么)

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(a)

用于类中去除模型属性

const、volatile、__unaligned

将a的值转换为T的对象指针

Dynamic_cast(a)

将一个类转换为另外一种类

Reinterpret_cast(a)

Static_cast(a)

++a,

a++

相比于后缀表达式 前缀表达式效率更高

原因是前、后缀表达式做了函数的重载

后缀表达式在重载是构造一个零时对象从而消耗时间

在一般使用时,前后差别不大

自定义时,需要注意能用前缀就用前缀

0

© 版权声明 本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如有侵权请联系网站管理员删除,联系邮箱1856753@qq.com。

相关推荐