-
有符号可存放正负数
无符号只可存放正数查看全部 -
malloc & free
查看全部 -
内联函数有好处,就是可以节省调用时候的额外开销。但是同时也会造成另外的问题,内联是以代码膨胀为代价而进行的优化,而如果一个函数过长,或者一个函数被调用了好多次,那么显然就不是适合使用内联函数优化。 其实现代的编译器,会对代码进行足够的优化,有些时候,你写了内联函数,但是编译器不一定会按照内联去优化,而有的函数,你没有写内联,他却会给你优化成内联。所以大家在初学 C++ 的时候其实没必要太纠结内联函数的实际优化效果。查看全部
-
需要注意的是,内联函数必须在函数定义的时候写上 inline 才可以,也就是说,这样写是不行的: inline int add(int a, int b); int add(int a, int b) { return a + b; }查看全部
-
那么有没有什么办法又能让我们使用函数,而又不带来更多的性能消耗呢? C++ 为我们提供了一种函数形式,叫做内联函数。在程序编译的时候,编译器会把内联函数的代码复制出来,粘贴到调用的地方。查看全部
-
long long>=long>=int>=short>=char
查看全部 -
指针
查看全部 -
#include <stdio.h>
int main(int argc,char **argv)
{
int a = 99;
int b = 98;
printf("a: %d, b: %d", a, b);
return 0;
}
只要写两个占位符就行了,程序运行输出 a: 99, b: 98cout
#include <stdio.h>
#include <iostream>
int main(int argc,char **argv)
{
int a = 99;
int b = 98;
std::cout << "a: " << a << ", b: " << b << std::endl;
return 0;
}
输出结果 a: 98, b: 99
cout 相对 printf 来说,更易用一些,只需要将想要输出的内容用 << 连接起来就好了。scanf
我们可以通过 printf 向控制台输出内容,也同样可以使用控制台向程序输入内容。输入内容,就需要用到一个函数scanf。
我们先来看个例子:
#include <stdio.h>
int main(int argc,char **argv)
{
int a = 0;
scanf("%d", &a);
return 0;
}在上面的程序中,当程序运行到 scanf("%d", &a); 这一句的时候,程序会停下来,此时你可以在黑框框里输入一个数字,然后按回车。程序就会把你输入的数字赋值给变量 a,然后继续执行。
当然,你也可以一次输入两个值:
#include <stdio.h>
int main(int argc,char **argv)
{
int a = 0;
int b = 0;
scanf("%d, %d", &a, &b);
return 0;
}这样就可以输入两个值了,由于"%d, %d"中间写的是逗号,所以输入的两个值要用逗号隔开。
cin
除了 scanf 之外,还有一种输入数据的方式,就是 cin,我们先看一个 cin 的例子
#include <stdio.h>
#include <iostream>
int main(int argc,char **argv)
{
int a = 0;
int b = 0;
std::cin >> a >> b;
return 0;
}使用 cin 可以连续从键盘读取想要的数据,以空格、tab键或换行符作为分隔符。cin 相对于 scanf 来说,不需要指明类型,用起来更方便一些。
查看全部 -
代码块预览复制 上面的函数在调用的时候,传入的第一个参数 a 是int型,第二个参数 b 是float型。不能颠倒两者的顺序,如果颠倒,则可能发生语法错误,或者进行数据类型的隐式转换。查看全部
-
参数列表的写法是类型 + 参数名称,每两个参数之间使用逗号隔开。 参数可以是任意类型,可以是基础数据类型,可以是指针,也可以是结构体类型。 在函数调用的时候,依照函数定义时参数列表的顺序依次传入想要传入的值。在使用的时候,参数的顺序不可以改变。查看全部
-
这是因为在 C++ 中,函数要想使用,必须要先声明。所以我们可以在调用之后实现函数体,但是必须在调用之前声明 #include <stdio.h> int avg(int a, int b); //函数声明 int main(int argc,char **argv) { int a = 10; int b = 20; int c = avg(a, b); return 0; } int avg(int a, int b) { return a + b / 2; } 我们现在将函数分成两个部分来说明,分别是函数头,函数体查看全部
-
int length = 100; int array[length]; int target = 10; for(int i=0;i<length;i++) { if(array[i] == target) { continue; } printf("array[%d]: %d\n", i, array[i]); } 代码块预览复制 在这段程序中,当 array[i] == target 的时候,会执行 continue 语句,跳出本次循环,而进入下一次循环,所以本次的 printf 不会被打印,而下一次会继续打印。查看全部
-
continue 与 break 类似,不一样的是,continue 是结束本次循环,进行下一次循环。查看全部
-
break 语句,可以直接跳出循环,执行下一阶段的程序。查看全部
-
判断数组中是否存在某个数字,只要找到一个,就说明存在。那么一旦确认存在之后,其实就没必要继续往下找了,多余的操作只会徒增性能的损耗。这时候,就会用到 break 关键字。查看全部
举报