-
#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)在這里是等價的。
查看全部
舉報