1樓:匿名使用者
在巨集定義裡,a##b就是把a,b聯接起來,比如f(1,2)就是12,但是是數。
#a就是把a轉化成字串,併合並。
所以 printf("%s\n",g(f(1,2)));就直接把f(1,2)轉成字串了。
2樓:匿名使用者
c語言中,##表示把兩個巨集引數貼合在一起,而單個#的功能是將其後面的巨集引數進行字串化操作。即,
#include
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main()
##被稱為連線符(直接貼合),用來將兩個巨集引數連線為一個巨集引數。而單個#的功能是將其後面的巨集引數進行字串化操作,簡單地說就是在對它所引用的巨集變數通過替換後在其左右各加上一個雙引號,使其成為字串。
3樓:66666順心
##用來連線前後兩個引數,把它們變成一個字串。
舉例說:
#define conn(x,y) x##yint n = conn(123,456); 結果就是n=123456;
char* str = conn("asdf", "adf")結果就是 str = "asdfadf";
你給出的巨集
#是預編譯的象徵有了這個編譯器就知道他是在預編譯前需要做的事如包含檔案
#include<>
#define n 100//在編譯前將n全部替換為100
4樓:匿名使用者
#define a(x) t_##x
#define b(x) #@x
#define c(x) #x
我們假設:x=1,則有:
a(1)------〉t_1
b(1)------〉'1'
c(1)------〉"1"
c語言中#和#和##分別有什麼用啊 10
5樓:投機士
c語言中,##表示把兩個巨集引數貼合在一起,而單個#的功能是將其後面的巨集引數進行字串化操作。即,
#include
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main()
##被稱為連線符(直接貼合),用來將兩個巨集引數連線為一個巨集引數。而單個#的功能是將其後面的巨集引數進行字串化操作,簡單地說就是在對它所引用的巨集變數通過替換後在其左右各加上一個雙引號,使其成為字串。
6樓:曠昊英單菱
ascii中有256個字元,其中諸如字母、逗號句號等字元是可以用鍵盤打出來的。但還有一些字元,比如換行符、終止符、製表符等,是沒法打出來的,可程式設計的時候又可能用到,怎麼辦?
辦法就是,規定「\」連同後面的字元共同表示一個字元,這就拓展出了很多新字元,如:\n表示換行符,\0表示終止符,等等。如果要表示「\」,則要連用兩個反斜槓「\\」
至於%d的%,這不是c規定的特殊符號,而是編寫printf、scanf等函式的人規定的。printf會對%特殊處理,認為它佔據了一個空擋,這個空擋由後面的引數填充
7樓:匿名使用者
##:token-pasting operator (##)define paster( n ) printf( "token" #n " = %d", token##n )
int token9 = 9;
if a macro is called with a numeric argument like
paster( 9 );
the macro yields
printf( "token" "9" " = %d", token9 );
which becomes
printf( "token9 = %d", token9#的用法就太多老 看看msdn吧 :)
8樓:匿名使用者
##也就是c的更高階了啊,他是在c上升級了而已
關於c語言中 || 和 &&的用法
9樓:匿名使用者
|&& 和 || 都是邏輯表示式裡常用的,一般用法是 if(表示式1 || 表示式2) 或者 if(表示式1 && 表示式2)
|| 表示 或 滿足其中一個,整個表示式就為真,就滿足if判定的條件
例如 if(1 || 0) std::cout <<"hello!\n"; 輸出為hello
&& 表示 且 if括號內的表示式都為真 才能滿足if判定的條件 才會執行if{}裡的語句
不清楚請追問
10樓:誰敢橫刀立馬
|表||是邏輯或,例子如下
//表示式1||表示式2
//如果表示式1是true或者表示式2是true,整條式子的結果就是true,否則是false
int a=0;
bool z=(a>0||a==0);
//這個例子中條件a==0,所以整條表示式的結果是true,如果表示式1的結果是true,
//那結果也是true
&&是邏輯與,例子如下:
//表示式1&&表示式2
//這個操作符要求兩邊的表示式都是true整條表示式才是true,如下
int a=0,b=0;
bool z=(a==0&&b==0);
//這個例子中兩邊的表示式都是true,所以最後的結果是true,如果有一邊的表示式不是true,,結果就是false
11樓:劉培鑫
||是邏輯或,例子如下
//表示式1||表示式2
//如果表示式1是true或者表示式2是true,整條式子的結果就是true,否則是false
int a=0;
bool z=(a>0||a==0);
//這個例子中條件a==0,所以整條表示式的結果是true,如果表示式1的結果是true,
//那結果也是true
&&是邏輯與,例子如下:
//表示式1&&表示式2
//這個操作符要求兩邊的表示式都是true整條表示式才是true,如下
int a=0,b=0;
bool z=(a==0&&b==0);
//這個例子中兩邊的表示式都是true,所以最後的結果是true,如果有一邊的表示式不是true,,結果就是false
12樓:塵世間的菜鳥
#include
void main()
13樓:匿名使用者
|| 和數學上的 "或者"差不
多 比如 x>1 || x<100 在c語言中 是從左自有判斷 如果x>1成立就不會再繼續判斷 || 之後的式子 ,只有x>1不成立才會繼續判斷 || 之後的式子
1 || 1 為真
1 || 0 為真
0 || 1 為真
0 || 0 為假
&& 和數學上的"並且"差不多 只有 && 前後的試子都成立才會為真 也就是說 && 是從左往右 運算過程中 只要有一個為假 就不會再往後面判斷
1 && 1 為真
1 && 0 為假
0 && 1 為假
0 && 0 為假 :這個要注意, (我上面只是說差不多哈) 你總不能錯誤的事情做兩次就是正確的了吧
|| 與&& 的運算結果都只是真或者假
14樓:匿名使用者
&& 邏輯與|| 邏輯或上面的是表示式同為真時則真。(1 > 0 && 2 > 0)下面的是表示式有一為真則真。(1>0 || 2<0)這兩個表示式的結果都返回真。
笨方法的漢字理解方法就看字與就是共同 或就是取一。一樣的。
15樓:匿名使用者
||就是邏輯裡面的或,&&就是邏輯運算裡面的與,if(a>1 || b>1) 上面只要a>1或者b>1,c就等於0,如果用&& ,就要同時都大於1咯
16樓:匿名使用者
if(x>1&&x<10) 其中&&就是並且的意思 這句話的意思是 10>x>1,
if(x>1||x<10) 其中||就是活著的意思 ,也就是說x<10或者x>1都滿足條件。
17樓:匿名使用者
a|| b a和b同時為假即為假,其它為真a&b a和b同時為真即為真,其它為假
18樓:匿名使用者
||就是邏輯或,兩個事件或
(當如加法1+0=1),&&邏輯與,兩個事件與(當如乘法1*0=0;只有1*1=1);|按位或(就資料每一位連加,只要有一位不是零,就不是零);&按位與(就當如每位相乘後在相加,只有對應相互不是零才不是零)
19樓:匿名使用者
用法和例子還是不太很好
20樓:y冰靨之星
|| //或操作 a||b a或者b有一個為真時 式子就返回true,都為就假才返回false。
&& &&且操作 a&&b a和b都為真時 式子才返回true,否則就返回false
21樓:匿名使用者
哈哈哈哈哈哈哈哈哈哈哈哈哈哈
c語言中goto語句的用法??舉例來說。
22樓:飛喵某
1、c語言中goto又叫無條件轉移語句,可以讓程式直接跳轉到任意標記的位置。用法就是「goto label……label:」。
下面用一個示例來演示具體的用法,這裡先新建一個c語言的程式檔案,演示使用的是visual studio軟體作為開發工具:
2、輸入goto語句應用**,這裡先定義兩個變數a和b,然後用printf函式列印兩句話,直接用goto語句強制跳轉到列印b語句的end標記位置,此時a的列印就不會執行了:
3、編譯執行程式,按下crtl+f5開啟命令列,就可以看到執行的結果,列印出了b語句,和預期的結果一樣。以上就是c語言中goto的用法:
23樓:哇哎西西
goto語句可以使程式在沒有任何條件的情況下跳轉到指定的位置,所以goto語句又被稱為是無條件跳轉語句。
它的語法如下
goto label;
//其它**
label:
其中,label為我們自己定義的一個標籤,定義的規則與變數的命名相同,它的位置是不固定的,它可以寫在goto語句的後面,也可以寫在它的前面,然而goto語句只能在一個函式內部跳轉,它並不允許跳轉出一個函式外部。
int day = 1;
loop:
if (day <= 31)
上面程式就是利用了goto和if語句來實現了迴圈功能,它與while實現的迴圈功能一樣,其中loop為我們定義的一個label(標籤)。
24樓:丿染指流年丶丶
goto語句也稱為無條件轉移語句,其一般格式如下: goto 語句標號; 其中語句標號是按識別符號規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)。
語句標號起標識語句的作用,與goto 語句配合使用。
如: label: i++;
loop: while(x<7);
c語言不限制程式中使用標號的次數,但各標號不得重名。goto語句的語義是改變程式流向, 轉去執行語句標號所標識的語句。
goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成迴圈,跳出迴圈體等功能。
但是,在結構化程式設計中一般不主張使用goto語句, 以免造成程式流程的混亂,使理解和除錯程式都產生困難。
擴充套件資料:
pascal
格式 goto 《標號》;
其中標號需要申請,在程式開頭寫label 《標號1>,《標號2>,……;
其中,標號必須為四位以內的正整數。
在該段落內還需要有《標號》:語句 表示將要轉向的方向。
goto語句與組合語言裡面的jmp指令相同,(無條件轉移)
1+2+3........+8+9+10
nasm描述:
mov ax,1
mov bx,0
start:add bx,ax
inc ax
cmp ax,11;比較指令
jzend ;零轉移
jmp start
end:
;;start: end:是標號
c語言中函式指標用法,C語言中函式指標用法
函式在記憶體中有一個物理位置,而這個位置是可以賦給一個指標的。一零點函式的地址就是該函式的入口點。因此,函式指標可被用來呼叫一個函式。函式的地址是用不帶任何括號或引數的函式名來得到的。這很類似於陣列地址的得到方法,即,在只有陣列名而無下標是就得到陣列地址。怎樣說明一個函式指標變數呢 為了說明一個變數...
c語言strcpy用法,c語言中strcpy函式幹什麼用的
飛喵某 2 接著定義兩個陣列a和b,程式經過strcpy函式處理,將b陣列中的字串複製到a陣列中,最後列印出結果 3 最後來看看效果。開啟除錯視窗,輸入一句話,按下回車輸出了這句話。以上就是c語言中strcpy的用法 例如 定義一個字串char a 20 和一個字串c i am a teacher ...
c語言中和有什么區別,c語言中「 」和「 」有什麼區別?
c語言中,表示賦值 如a b,表示把b的值賦給a 表示等於 如a b,表示a與b相等!等號是 賦值號是 int a 1,是把1賦值給a,a 1,就是a是常值1 有區別 是 賦值語句,用來判斷是否相等 如 if x 10 x如果等於10 則括號裡的值是1執行,x不等於10 則括號裡的值是0 不執行如果...