『壹』 c語言中 & 和 && 的區別
區別:
1.運算符性質不同。
&是一個位運算符。
&&是一個邏輯運算符。
2.作用不同。
&是將兩個二進制的數逐位相與,結果是相與之後的結果。
&&就是判斷兩個表達式的真假性,只有兩個表達式同時為真才為真,有一個為假則為假,具有短路性質。
3.用途限制。
&除了是一個位運算符,也是取地址符。
&&就是一個單純的邏輯運算符,沒有任何其他含義。
參考資料
&-網路
&&-網路
『貳』 c語言單鏈 之和
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define LEN sizeof(node)
typedef struct polynode /*用單鏈表存儲多項式的結點結構*/
{
int coef; /*多項式的系數*/
int exp; /*指數*/
struct polynode *next; /*next是struct polynode類型中的一個成員,它又指向
struct polynode類型的數據,以此建立鏈表*/
}node;/*若定為"node,*list;",意即node*與list同為結構指針類型*/
node * create(void) /*指針函數,返回指針類型;用尾插法建立一元多項式的鏈表的函數*/
{
node *h,*r,*s;
int c,e;
h=(node *)malloc(LEN); /*建立多項式的頭結點,為頭結點分配存儲空間*/
r=h; /*r指針始終動態指向鏈表的當前表尾,以便於做尾插入,其初值指向頭結點*/
printf("coef:");
scanf("%d",&c); /*輸入系數*/
printf("exp: ");
scanf("%d",&e); /*輸入指針*/
while(c!=0) /*輸入系數為0時,表示多項式的輸入結束*/
{
s=(node *)malloc(LEN); /*申請新結點*/
s->coef=c; /*申請新結點後賦值*/
s->exp=e; /*申請新結點後賦值*/
r->next=s; /*做尾插,插入新結點*/
r=s; /*r始終指向單鏈表的表尾*/
printf("coef:");
scanf("%d",&c);
printf("exp: ");
scanf("%d",&e);
}
r->next=NULL; /*將表的最後一個結點的next置NULL,以示表結束*/
return(h);
}
void polyadd(node *polya, node *polyb)/*一元多項式相加函數,用於將兩個多項式相加,然後將和多項式存放在多項式polya中,並將多項式ployb刪除*/
{
node *p,*q,*pre,*temp;
int sum;
p=polya->next;/*令p和q分別指向polya和polyb多項式鏈表中的第一個結點*/
q=polyb->next;
pre=polya; /*位置指針,指向和多項式polya*/
while(p!=NULL&&q!=NULL) /*當兩個多項式均未掃描結束時,執行以下操作*/
{
if(p->exp<q->exp) /*若p指向的多項式指數小於q指的指數*/
{
pre->next=p; /*將p結點加入到和多項式中*/
pre=pre->next;
p=p->next;
}
else if(p->exp==q->exp) /*若指數相等,則相應的系數相加*/
{
sum=p->coef+q->coef;
if(sum!=0)
{
p->coef=sum;
pre->next=p;pre=pre->next;p=p->next;
temp=q;q=q->next;free(temp);
}
else /*如果系數和為零,則刪除結點p與q,並將指針指向下一個結點*/
{
temp=p->next;free(p);p=temp;
temp=q->next;free(q);q=temp;
}
}
else /*若p指數大於q指數*/
{
pre->next=q; /*p結點不動,將q結點加入到和多項式中*/
pre=pre->next;
q=q->next;
}
}
if(p!=NULL) /*多項式A中還有剩餘,則將剩餘的結點加入到和多項式中*/
pre->next=p;
else /*否則將B的結點加入到和多項式中*/
pre->next=q;
}
void print(node * p) /*輸出函數,列印出一元多項式*/
{
while(p->next!=NULL)
{
p=p->next;
printf(" %d*x^%d",p->coef,p->exp);
}
}
main() /*主函數*/
{
node * polya,* polyb;
printf("Welcome to use!\n");
printf("\nPlease input the ploya include coef && exp:\n");
polya=create(); /*調用建立鏈表函數,創建多項式A*/
print(polya);
printf("\nPlease input the ployb include coef && exp:\n");
polyb=create(); /*同理,創建B*/
print(polyb);
printf("\nSum of the poly is:\n");
polyadd(polya,polyb); /*調用一元多項式相加函數*/
print(polya); /*調用輸出函數,列印結果*/
printf("\n");
『叄』 c語言中雙等號和單等號的區別是什麼求解答!
c語言中雙等號和單等號的區別是:
c語言中雙等號是等於的意思,是一種關系運算符,比較大小的,相等則是雙等號。
而c語言中單等號的意思是賦值,它是賦值語句中必備的符號,指的是將一個值或一個變數賦給另外一個變數。
希望我的回答對你有幫助,謝謝。
『肆』 關於C語言中 || 和 &&的用法
「||」「&&」表示邏輯運算,「||」表示或者的意思,「&&」表示並且的意思。
&&運算符需要兩個表達式作為操作數,並創建一個表達式,只有當兩個子表達式都為true時,該表達式才為true。
||運算符需要兩個表達式作為操作數,並創建一個表達式,當任何一個子表達式為true時,該表達式為true。只要其中一個子表達式為true,則整體表達式為true,此時另外一個子表達式無論是false還是true都無關緊要。
運算符的優先順序
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先順序需要記住:
指針最優,單目運算優於雙目運算,如正負號。先算術運算,後移位運算,最後位運算。請特別注意:邏輯運算最後結合。
『伍』 c語言單雙精度的區別
C語言中,單精度浮點型為float, 雙精度浮點型為double。具體區別如下:
1、 佔用位元組空間不同。
一個float變數佔用四位元組,一個double類型變數,一般佔用8位元組。
2、 表示範圍不同。
float表示範圍為-3.4E-38~3.4E+38。
double 表示範圍為-1.7E-308~1.7E+308。
3、 精度不同。
float在表示十進制時,有效數字為6到7位。
double在表示十進制時,有效數字為15到16位。
4、輸入輸出格式不同。
在C語言中,輸入輸出格式化字元串,float使用%f,而double使用%lf。
『陸』 C語言 or的用法
or代表或的意思,在C語言中有兩種或操作,一種是邏輯或運算符,一種是位或運算符。邏輯或運算符用||來表示,位或運算符用|(只有一個豎杠)來表示,特別注意,位或操作,只能操作整型數據。比如:
for(intinx=0;inx!=10;++inx){
//當x==1或者x==5的時候輸出helloworld
if(inx==1||inx==5)printf("helloworld ");
}
注意邏輯或運算具備短路求值特點,如上面的例子,如果inx==1成立,則不會檢測後面的inx==5了。這就是短路求值。
位或運算比較簡單一般的規則是,遇1得1。
0 | 1 = 1
1 | 0 = 1
0 | 0 = 0
1 | 1 = 1
『柒』 簡單C語言或C++編程
#include "stdio.h"
int search(int array[],int num,int i);//若該元素在數組中則返回1,否則返回0
void main(){
int i,temp;
int a[10]={};//假設該數組有十個元素,在大括弧內初始化該數組
printf("請輸入您要查找的元素:");
scanf("%d",i);
printf("\n");
if(search(a,10,i))
printf("該元素在該數組中\n");
else
printf("該元素不在該數組中\n");
}
search(int array[],int num,int i)
{
int high,low,midlle;
low=0;
high=num-1;
while(low<=high)
{
midlle=(low+high)/2;
if(array[midlle]==i)
return 1;
else
if(array[midlle]<i)
low=midlle+1;
else
high=midlle-1;
}
return 0;
}
『捌』 C語言&和&&的區別,|和||的區別
「&&」(邏輯與)是邏輯運算符。
「邏輯與」相當於生活中說的「並且」,就是兩個條件都同時成立的情況下「邏輯與」的運算結果才為「真」。
「&」是位運算符。
『玖』 c語言單引號和雙引號
雙引號下的字元由於無法確定也就無法得到具體佔用多少位元組,所以它是以一個指針來處理字元串常量的。單引號毫無疑問一個位元組。
『拾』 C語言中單個&代表什麼意思
額..有兩種情況
1. a & b這里的 & 是按位與操作
2. &c 這里的 & 是取地址操作