-
#include <stdio.h>
int main(int argc,char **argv)
{
printf("Hello World!\n");
return 0;
}
C++第一种表述方式
#include <iostream>
int main(int argc,char **argv)
{
std::cout << "Hello World!\n" << std::endl;
return 0;
}
C++第二种表述方式查看全部 -
include <stdio.h>
int main(int argc,char **argv)
{
for(int i=0;i<5;i++){
for(int j=0;j<8;j++){
printf("* ");
}
printf("\n");
}
return 0;
}用的是for的循环
因为是从0开始,所以可以小于8
查看全部 -
当程序执行到 while 之后,会发生下面的事情:
1. 先执行"表达式A",判断"表达式A"的返回值是否是 true,如果它的值为真(非0),则执行循环体,否则结束循环。
2. 重复执行 1可以发现,do-while 和 while 是非常像的,不一样的是,这里多了一个 do,而且 while 放到了后面。
而 do-while 和 while 最不一样的地方,就是 do-while 无论条件是否成立,都会先执行一次循环体内的内容。
do-while 是一种 while 的重要补充,由 while 的先判断再循环,变成先循环再判断。
我们来看这样一段程序
这段程序中,我们直接在 while 的判断条件中写了一个 false。那么我们这样做了,事实上是无法构成一个循环的。既然不是循环,那么我们为什么要这样做呢?
因为我们这里要利用一个循环的语法,来实现非循环的用途。
我们在写程序的时候,有时候会想要做一个跳过一段程序的功能。
do {
if(a == 12){
break;
}
b = a + b;
} while(false);
b = a - b;查看全部 -
当程序执行到 while 之后,会发生下面的事情:
1. 先执行"表达式A",判断"表达式A"的返回值是否是 true,如果它的值为真(非0),则执行循环体,否则结束循环。
2. 重复执行 1查看全部 -
hile循环和for循环最显著不一样的地方,就是while循环 没有那么多前置规则,看上去更加灵活一些。
while 和 for 的用途也不太一样,for循环更适合循环次数比较确定的场景,例如数组遍历等,而while 循环更适合不确定循环次数不确定的场景。
当程序执行到 while 之后,会发生下面的事情:
1. 先执行"表达式A",判断"表达式A"的返回值是否是 true,如果它的值为真(非0),则执行循环体,否则结束循环。
2. 重复执行 1查看全部 -
这种用法,也是 for 循环最常见的用法。因为 for 可以在括号内申明局部变量(变量 i 只在循环内有效),不容易干扰其他部分的代码,而变量 i 处理当作判定条件之外,还恰巧可以当作数组的角标。
int array[100];
for(int i=0;i<100;i++){
printf("array[%d]: %d\n", i, array[i]);
}查看全部 -
编译C++程序时,编译器要用g++.exe而不是gcc.exe查看全部
-
#include <stdio.h>
int main(int argc,char **argv)
{
int g = 85;
先输入成绩,然后if(括号中是条件){
if(g >= 90){
printf("优\n");
}
else if(g >= 75 && g <= 89){
printf("良\n");
}
else if(g >= 60 && g <= 74){
printf("中\n");
}
else{
printf("差\n");
}
return 0;
}else if 是分开来写的
最后一步不用写条件,直接是else
查看全部 -
执行的结果似乎和我们预期的结果有出入, switch 在匹配到 5 的 case 之后,不但执行了 5 的 case 从句,还把 5 之后所有的 case 从句连同 default 从句一起输出了。
这就是 switch case 的特殊的地方,他在匹配到相应的 case 之后,会将后面所有的 case 从句都执行一次,直到碰到一个 break 语句。如果想让这段程序符合预期,我们就要这么写:
#引入源码
int main()
{int main(int argc,char **arg)
int s = 5;
switch (s) {
case 1:
printf("1\n");
break;default:
printf("unknow\n");查看全部 -
enum 变量名字
{
展开变量
};
int main()
{
if(week==大变量名::展开值){printf("mon\n")}
}
查看全部 -
truct Student
{
float math;
float english;
float chinese;
}
enum Season
{
Spring,
Summer,
Autumn,
Winter
};查看全部 -
第一个等式右边记得要是集合
结构体是struct
枚举enum
后面要加具体内容,括号外面还有分号
查看全部 -
denjia
查看全部 -
除法分为两种情况,一种是整数,对于整数的除法,整数除法之后,得到的还是一个整数,如下,输出结果为 2,只保留整数部分,余数部分被舍去。
上面是整数除,下面是浮点数
a = 5; int b = 2; int c = a / b; printf("c: \n", c); return 0; a = 5; float b = 2; float c = a / b; printf("c: \n", c); return 0;
查看全部 -
#include<stdlib.h>
查看全部 -
我们在定义数组的时候,常常这样定义,int arr[5];
printf("array[0]: %p\n", &array[0]); // %p 用来打印数组的地址
array[0]: 0x7ffee9d81490
array[1]: 0x7ffee9d81494
array[2]: 0x7ffee9d81498
array[3]: 0x7ffee9d8149c
array[4]: 0x7ffee9d814a0指针的地址以16进制的方式输出,可以看出,这几个地址中,每两个相邻的地址都相差 4 ,而每一个元素都是 int类型,int 占 4 个字节大小,说明他们确实是紧密相连的。
int main(int argc,char **argv)
{
int array[5];
printf("array: %p\n", array);
printf("array[0]: %p\n", &array[0]); // %p程序运行结果如下:
array: 0x7ffeefa29490
array[0]: 0x7ffeefa29490
array[1]: 0x7ffeefa29494
array[2]: 0x7ffeefa29498
array[3]: 0x7ffeefa2949c
array[4]: 0x7ffeefa294a0我们发现,直接输出 array 和首元素的地址,是一模一样的,那么就可以得出一个结论:数组名是一个指向数组首元素的指针
代码中的 *(array + 2) = 1; 就等价于 array[2] = 1;
*(数组名称加下表跨度)=值
int*p=(int*)malloc(5*seizeof(int));分配五个int
free(p)
p[2]和*(p + 2)在这里是等价的。
查看全部
举报