1樓:匿名使用者
樓上大家說的都對:
我為樓主畫了一演示圖.
注意一下: char str[40]; 字元陣列值應該是隨機的! 不能保證含有空字元.
insert函式內, printf("%s\n",str); str是否含有空字元是未知的,能正確輸出結果,只是一種巧合.
insert(char str)
printf(「%s\n」,str);
2樓:永遠de青春
結果:a*b*c*d*
改進:while( i > 0 )
str 中 'a'的位置沒動
str = a*b*c*d*
3樓:隨風
這樣修改就好了
#include
using namespace std;
void insert(char str)printf("%s\n",str);
}void main()
//當輸入abcd是你的程式出來的結果是a*b*c*d*,最後多一個*,原因在於i=4,
str[2*i]=str[i]; //str[8]=str[4]=0str[2*i-1]='*';//str[7]=*i--;
最後結果輸出到str[8]結束,多輸出*,你大概忘記了陣列字串是從0開始計數,而長度是真正的個數。
4樓:謝應宸
假設你輸入4個字元abcd
那麼strlen為4
str[2*4]就是str[8]是第9個位置,為原來的str[4]就是\0
那麼接下來前面一個就是*了 ,這個*才是最後一個可見的元素
5樓:匿名使用者
4:abcd???*
3:abcd?*d*
2:abc*c*d*
1:a*b*c*d*
c語言中賦值語句有什麼規則要求?
6樓:匿名使用者
由於在賦值符「=」右邊的表示式也可以又是一個賦值表示式, 因此,下述形式 變數=(變數=表示式); 是成立的,從而形成巢狀的情形。 其之後的一般形式為:變數=變數=…=表示式;
例如: a=b=c=d=e=5; 按照賦值運算子的右接合性,因此實際上等效於: e=5; d=e; c=d; b=c; a=b;
注意在變數說明中給變數賦初值和賦值語句的區別。 給變數賦初值是變數說明的一部分,賦初值後的變數與其後的其它同類變數之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。 例如:
int a=5,b,c;
在變數說明中,不允許連續給多個變數賦初值。 如下述說明是錯誤的: int a=b=c=5 必須寫為 int a=5,b=5,c=5; 而賦值語句允許連續賦值。
注意賦值表示式和賦值語句的區別。 賦值表示式是一種表示式,它可以出現在任何允許表示式出現的地方,而賦值語句則不能。
下述語句是合法的: if((x=y+5)>0) z=x; 語句的功能是,若表示式x=y+5大於0則z=x。 下述語句是非法的:
if((x=y+5;)>0) z=x; 因為x=y+5;是語句,不能出現在表示式中。
7樓:匿名使用者
在賦值語句的使用中需要注意以下幾點:
由於在賦值符「=」右邊的表示式也可以又是一個賦值表示式, 因此,下述形式 變數=(變數=表示式); 是成立的,從而形成巢狀的情形。 其之後的一般形式為:變數=變數=…=表示式;
例如: a=b=c=d=e=5; 按照賦值運算子的右接合性,因此實際上等效於: e=5; d=e; c=d; b=c; a=b;
2. 注意在變數說明中給變數賦初值和賦值語句的區別。 給變數賦初值是變數說明的一部分,賦初值後的變數與其後的其它同類變數之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。
例如: int a=5,b,c;
3. 在變數說明中,不允許連續給多個變數賦初值。 如下述說明是錯誤的: int a=b=c=5 必須寫為 int a=5,b=5,c=5; 而賦值語句允許連續賦值。
4. 注意賦值表示式和賦值語句的區別。 賦值表示式是一種表示式,它可以出現在任何允許表示式出現的地方,而賦值語句則不能。
下述語句是合法的: if((x=y+5)>0) z=x; 語句的功能是,若表示式x=y+5大於0則z=x。
下述語句是非法的: if((x=y+5;)>0) z=x; 因為x=y+5;是語句,不能出現在表示式中。
8樓:
型別上 要統一;結束用分號。
9樓:南坪中學校帥
可以進行連賦吧···
=操作符是右結合
a=b=c=5 就是
5賦值給c,c就等於5
c賦值給b,b就等於c,就等於5
下面同樣的道理···
10樓:
不能進行連賦,如: a=b=c=5 這樣是錯的
簡述c語言中賦值語句的作用和用法
用持續賦值語句描述一個4選1資料選擇器??? 10
關於賦值語句的問題 急!!!!!!!!!!!!!!!!!!!!!
11樓:匿名使用者
1.a2.2(2)、(4)這一題不是很確定。
12樓:匿名使用者
1、a (b錯在c沒有賦初始值)
2、(2)(4)
(1)錯在連用分號 (3)錯在常數不能賦值
在用作真值的賦值語句前後加上括號是什麼意思
13樓:加菲帶你看電影
如果你把一個賦值語句看成呼叫一次函式,那麼這個賦值語句的反悔值就是所賦的值,比如
if (a = 0)
那麼 if 裡面得到的值就永遠是 0
如果 if (a = 1) 則永遠為1
所以,你的題目裡,就相當於 先將s.pop() 的返回值付給ch, 同時如果這個值非0, while語句就進行下去,否則,就退出迴圈。
14樓:匿名使用者
直接加上括號啊while((ch = s.pop())),雖然執行效果 一樣了,但避免了編譯的時候出現的「警告:建議在用作真值的賦值語句前後加上括號 」
15樓:啟東德樂潤滑
先將s.pop() 的返回值付給ch, 同時如果這個值非0, while語句就進行下去,否則,就退出迴圈。
python中賦值語句和增強賦值語句的區別
16樓:
賦值語句是由賦值表示式再加上分號構成的表示式語句。 其一般形式為: 變數=表示式; 賦值語句的功能和特點都與賦值表示式相同。
它是程式中使用最多的語句之一。 在賦值語句的使用中需要注意以下幾點: 1.
由於在賦值符「=」右邊的表示式也可以又是一個賦值表示式,因此,下述形式 變數=(變數=表示式); 是成立的,從而形成巢狀的情形。其之後的一般形式為: 變數=變數=…=表示式; 例如:
a=b=c=d=e=5;按照賦值運算子的右接合性,因此實際上等效於: e=5; d=e; c=d; b=c; a=b; 2.注意在變數說明中給變數賦初值和賦值語句的區別。
給變數賦初值是變數說明的一部分,賦初值後的變數與其後的其它同類變數之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。 3.在變數說明中,不允許連續給多個變數賦初值。
如下述說明是錯誤的: int a=b=c=5 必須寫為 int a=5,b=5,c=5; 而賦值語句允許連續賦值。 4.
注意賦值表示式和賦值語句的區別。賦值表示式是一種表示式,它可以出現在任何允許表示式出現的地方,而賦值語句則不能。
verilog中有哪幾種型別的賦值語句,說明它們的區別,並舉例
17樓:硪丨曖戀
在verilog中有兩種型別的賦值語句 連續賦值和過程賦值 賦值表示式由三個部分組成 左
值賦值運算子=或<= 和右值右值可以是任何型別的資料包括net型和register型但對連續
賦值 左值必須是net型別的資料 而過程賦值 左值必須是register型別的資料 下面將作詳細描
述1連續賦值
在initial或always外的assign賦值語句 稱為連續賦值語句 一般在描述純組合電路時使用 例
如wire out //型別定義左值必須是net型別包括wire tri wand wor等等
assign out = a + b //綜合結果為加法器
assign out = en ? a : b //多路選擇器
assign out = en ? in : z //三態門
也可以在資料定義時同時進行連續賦值如
wire out = a + b
使用連續賦值語句 所有右值都是敏感訊號 當右值發生變化時 計算表示式的值 並將結
果傳給左值具有組合電路的特性輸入變化輸出立即變化
2過程賦值
在initial或always塊中的賦值語句 稱為過程賦值語句 包括三種 blocking賦值
non-blocking賦值和過程連續賦值assign/deassign
值描述時序邏輯電路使用blocking賦值語句描述組合邏輯電路例如
reg x,y,z;
//non-blocking assignment
always @(posedge clk)
begin
x <= a && b;
y <= x;
z <= y;
endreg x,y,z;
//blocking assignment
always @(posedge clk)
begin
x = a && b;
y = x;
z = y;
end在verilog中有兩種型別的賦值語句 連續賦值和過程賦值 賦值表示式由三個部分組成 左
值賦值運算子=或<= 和右值右值可以是任何型別的資料包括net型和register型但對連續
賦值 左值必須是net型別的資料 而過程賦值 左值必須是register型別的資料 下面將作詳細描
述1連續賦值
在initial或always外的assign賦值語句 稱為連續賦值語句 一般在描述純組合電路時使用 例
如wire out //型別定義左值必須是net型別包括wire tri wand wor等等
assign out = a + b //綜合結果為加法器
assign out = en ? a : b //多路選擇器
assign out = en ? in : z //三態門
也可以在資料定義時同時進行連續賦值如
wire out = a + b
使用連續賦值語句 所有右值都是敏感訊號 當右值發生變化時 計算表示式的值 並將結
果傳給左值具有組合電路的特性輸入變化輸出立即變化
2過程賦值
在initial或always塊中的賦值語句 稱為過程賦值語句 包括三種 blocking賦值
non-blocking賦值和過程連續賦值assign/deassign
值描述時序邏輯電路使用blocking賦值語句描述組合邏輯電路例如
reg x,y,z;
//non-blocking assignment
always @(posedge clk)
begin
x <= a && b;
y <= x;
z <= y;
endreg x,y,z;
//blocking assignment
always @(posedge clk)
begin
x = a && b;
y = x;
z = y;end
賦值語句與賦值表示式的區別
賦值語句是由賦值表示式再加上分號構成的表示式語句。其一般形式為 變數 表示式 賦值語句的功能和特點都與賦值表示式相同。它是程式中使用最多的語句之一。在賦值語句的使用中需要注意以下幾點 1.由於在賦值符 右邊的表示式也可以又是一個賦值表示式,因此,下述形式 變數 變數 表示式 是成立的,從而形成巢狀的...
free pascal的基本語句,賦值
迴圈語句 for語句 for 控制變數 表示式1 to 表示式2 do 語句 遞增型迴圈。for 控制變數 表示式1 downto 表示式2 do 語句 遞減型迴圈。for 語句說明。1 迴圈變數必須是順序型別。例如,可以是整型 字元型等,但不能是實型。2 迴圈變數的值遞增或遞減的規律是 選用to則...
用持續賦值語句描述4選1資料選擇器
module mux4 1 out,in0,in1,in2,in3,sel input in0,in1,in2,in3 input 1 0 sel output out assign out sel 1 sel 0 in3 in2 sel 0 in1 in0 endmodule 計算機程式語言的程式...