當前位置:首頁 » 編程語言 » c語言中c和s的用法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中c和s的用法

發布時間: 2022-10-18 12:11:22

c語言 switch的用法

switch用在編程中,如C語言中它經常跟case一起使用,是一個判斷選擇代碼。其功能就是控制業務流程流轉的。

C語言程序語句switch語句的語法如下(switch,case和default是關鍵字):

switch ( controllingExpression )

{

case constantExpression1 :

case constantExpression2 :

case constantExpression3 :

statements;

//當滿足constantExpression1、constantExpression2、constantExpression3任何一個都執行statements

break;

case constantExpression :

statements ;

break;

...

default :

statements ;

break;

}

(1)c語言中c和s的用法擴展閱讀:

Switch在一些計算機語言中是保留字,其作用大多情況下是進行判斷選擇。以C語言來說,switch(開關語句)常和case break default一起使用。

遵守switch語句規則

switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則:

只能針對基本數據類型中的整型類型使用switch,這些類型包括int、char等。對於其他類型,則必須使用if語句。

switch()的參數類型不能為實型 。

case標簽必須是常量表達式(constantExpression),如42或者'4'。

case標簽必須是惟一性的表達式;也就是說,不允許兩個case具有相同的值。

⑵ c語言中 %c表示什麼

%c在C語言中代表字元型格式符。

%s在C語言中代表字元串型格式符。

%c和%s一般用在printf、sprintf等字元串格式化函數中,用於決定格式化參數的數據類型。如printf("%s", a)會將變數a作為字元串類型進行格式化。

printf()函數是格式化輸出函數, 一般用於向標准輸出設備按規定格式輸出信息。

printf()函數的調用格式為: printf("<格式化字元串>", <參量表>)。

格式輸出,它是c語言中產生格式化輸出的函數(在 stdio.h 中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。

(2)c語言中c和s的用法擴展閱讀:

C語言中所有格式化類型的定義:

1、%d/i

接受整數值並將它表示為有符號的十進制整數,i是老式寫法

2、%o

無符號8進制整數(不輸出前綴0)

3、%u

無符號10進制整數

4、%x/X

無符號16進制整數,x對應的是abcdef,X對應的是ABCDEF(不輸出前綴0x)

5、%f(lf)

單精度浮點數和雙精度浮點數用f(lf在C99開始加入標准,意思和f相同)

6、%e/E

科學計數法表示的數,此處"e"的大小寫代表在輸出時用的「e」的大小寫

7、%g/G

有效位數,如:%.8g表示單精度浮點數保留8位有效數字。

8、%c

字元型。可以把輸入的數字按照ASCII碼相應轉換為對應的字元

9、%s/S

字元串。輸出字元串中的字元直至字元串中的空字元(字元串以'『結尾,這個''即空字元)

10、%p

以16進制形式輸出指針

11、%n

到此字元之前為止,一共輸出的字元個數,不輸出文本

12、%%

不進行轉換,輸出字元『%』(百分號)本身

13、%m

列印errno值對應的出錯內容,(例:printf("%m ");)

⑶ 啊c語言中,c%和s%什麼情況用什麼啊用還有d+=s[i]是什麼意思啊

%c和%s吧,字元的時候用%c,字元串的時候用%s,d+=s[i]等於d=d+s[i],表示,把d+s[i]的值復制給d

⑷ C語言中C[S[i]]++是什麼意思,詳細點哦,謝謝!

i是一個整數,
S[]是整數數組,
C[]也是整數數組
S[i]是S數組中第i-1個元素值,則S[i]也是整數,所以C[S[i]]是數組C中第S[i] - 1 個元素值
最後C[S[i]]++是將C[S[i]]自增1,也即將C[S[i]]+1的值還存儲在C[S[i]]中

⑸ C語言中s=(float *)calloc(1,sizeof(float));的作用

這句話的意思是動態分配一個float大小的內存空間,把這塊空間的首地址傳給一個浮點數指針型的變數s。
calloc是一個ISO
C函數。
函數名:
calloc
函數原型:void
*calloc(size_t
n,
size_t
size);

能:
在內存的動態存儲區中分配n個長度為size的連續空間,函數返回一個指向分配起始地址的指針;如果分配不成功,返回NULL。
sizeof的概念
sizeof是C語言的一種單目操作符,如C語言的其他操作符++、--等。它並不是函數。sizeof操作符以位元組形式給出了其操作數的存儲大小。操作數可以是一個表達式或括在括弧內的類型名。操作數的存儲大小由操作數的類型決定。
sizeof的使用方法
1、用於數據類型
sizeof使用形式:sizeof(type)
數據類型必須用括弧括住。如sizeof(int)。
2、用於變數
sizeof使用形式:sizeof(var_name)或sizeof
var_name
變數名可以不用括弧括住。如sizeof
(var_name),sizeof
var_name等都是正確形式。帶括弧的用法更普遍,大多數程序員採用這種形式。

⑹ 在C語言中printf("c=%6.2f,s=%6.2f\n",c,s是什麼意思

是變數。

值可以改變的量稱為變數。程序中所用到的每一個變數都應該有一個名字作為標記,它是屬於用戶標識符。變數名的命名規則應該遵守標識符命名規則。

一個變數實質上是代表了內存中的某個存儲單元。程序中的變數a,就是指用a命名的某個存儲單元,用戶對變數a進行的操作就是對該存儲單元進行的操作。給變數a賦值,實質上就是把數據存人該變數所代表的內存單元中。

C語言中規定,程序中所要用到的變數應該先定義後使用。通常,對變數的定義放在函數的開頭部分,但也可以放在函數的外部或復合語句的開頭。

像常量一樣,變數也有類型的區分,如整形變數、實型變數、字元型變數等。C語言在定義變數的同時說明該變數的類型,系統在定義時就能根據定義及其類型為它分配相應數量的存儲空間。

⑺ c語言中"*s"這是什麼意思

*s表示s是一個指針

另外,指針跟地址不是一個概念。

指針是一種變數類型,這種變數類型的值是地址。

就像int變數的值是整數一樣。你可以說數字5是整數,但是不能說5是一個int變數。

(7)c語言中c和s的用法擴展閱讀:

指針作為實體,是一個用來保存一個內存地址的計算機語言中的變數。指針一般出現在比較底層的程序設計語言中,如C語言。

高層的語言如Java一般避免用指針,而是引用,指針作為數據類型,可以從一個函數類型、一個對象類型或者一個不完備類型中導出,C++標准中規定,「指針」概念不適用於成員指針(不包含指向靜態成員的指針)。

⑻ c語言中如何用s表示函數值

在C語言中用到數值范圍一般有如下兩種情況:
1 邏輯判斷中確定某數在某個范圍內。
比如判斷數c在[a,b]區間內可以寫作
(a<=c) && (c <= b)
2 使計算結果處於某個范圍內。
比如計算時間時,當前時間為n點,經過m小時後是幾點,由於時間僅取值在0點到23點,所以對數值范圍需要做約束。對於此可以用模除(%)來限定。
(n+m)%24

其它關於數值范圍限定的問題,都可以從這兩種情況中延伸獲得。
比如下面兩個例題就是兩種情況的應用。
例一,輸入起始天的星期數(1-7),及天數n,計算經過n天後是星期幾。
分析,這個是第二種的典型應用,不過數據規模為1到7,與之前說的0起始情況略有不同,可以通過轉換達到目的,代碼如下:
#include <stdio.h>
int main()
{
int s,n;

scanf("%d%d",&s,&n);
s --;//將s-1;這樣用0-6代表星期一到日
s +=n;
s%=7;//通過模除限定結果
s++;//轉換回1-7的表示方法
printf("%d\n", s);//輸出結果

return 0;
}

例二,依照下面的公式計算,直到結果小於0或者大於100為止,f(0)由外部輸入。
如果f(n)為奇數,f(n+1)=2f(n)
否則f(n+1) = f(n)/2-10
輸出計算結果。

題目很清晰,直接輸入並循環計算,直到符合退出條件為止。 對於條件的判斷就是第一種情況的簡單應用了。
代碼如下:
#include <stdio.h>
int main()
{
int r;
scanf("%d",&r);
while(r >= 0 && r <= 100)//對結果進行范圍判斷
{
if(r & 1) r *= 2; //奇數的情況。
else r=r/2-10;//偶數的情況。
}

printf("%d\n", r);

return 0;
}

⑼ 求大神整理c語言指令符號及用法大全。

編譯指令

編譯指令

說明

#include

包含另一個文件

#define

定義一個宏(macro)或是常量

#undef

取消一個宏常量的定義

#asm和#endasm

在程序中加入匯編語言的程序

#ifdef、#ifndef、#else、#endif

用於條件式的編譯

註解://—單行註解;
基本數據類型 (int,float,double,char,void)

數據類型

類型說明

長度(位)

數據長度

bit



1

0,1

char

字元

8

—128~127

unsigned char

無符號字元

8

0~255

signed char

有符號字元

8

—128~127

int

整型

16

—32768~32767

short int

短整型

16

—32768~32767

unsigned int

無符號整型

16

0~65535

signed int

有符號整型

16

—32768~32767

long int

長整型

32

—2147483648~2147483647

unsigned long int

無符號長整型

32

0~4294967295

signed long int

有符號長整形

32

—2147483648~2147483647

float

浮點數(實數)

32

0.175e-38~0.402e38

double

雙精度浮點

32

0.175e-38~0.402e38

void



0

沒任何數據

用戶自定義數據類型格式
typedef struct{
數據類型 變數序列1;
數據類型 變數序列1;
...
}自定義數據類型的名稱;
保留字
_at_,alien,bdata,break,bit,case,char,code,compact,const,continue,data,
default,do,double,far,else,enum,extern,float,for,goto,if,funcused,idata,int,
inline,interrupt,large,long,pdata,_priority_,reentrant,return,sbit,sfr,sfr16,
short,sigend,sizeof,small,static,struct,switchc_task_,typedef,using,union,
unsigned,void,volatile,while,xdata

常量表示法

常數

規則

範例

十進制

一般十進制格式

1234567890

二進制

開頭加上0b

0b00001110

八進制

開頭加上O

O0123

十六進制

開頭加上0x

0xFF45

無符號整數常量

結尾加上U

30000U

長整數常量

結尾加上L

299L

無符號長整數常量

結尾加上UL

327800UL

浮點數的常量

結尾加上F

4.234F

字元常量

以單引號括起來

『a』

字元串常量

以雙引號括起來

「hello」

-----------------------------------------------------運算符-----------------------------------------------------
算術運算

運算符

說明

範例

執行結果

+



c=a+b;

c 等於10





d=a—b;

d 等於6

*



e=a*b;

e 等於16

/



f=a/b;

f 等於4

%

取余數

g=a%b;

g 等於0

++

加1

c++;相當於c=c+1;

c 等於11

——

減1

d——;相當於d=d—1;

d 等於5

=

等於

a=8;

設置a等於8

+=

先相加在等於

e+=5;相當於e=e+5;

e 等於21

—=

先相減在等於

f—=5;相當於f=f—5;

f 等於—1

*=

先相乘在等於

b*=5;相當於b=b*5;

b 等於0

/=

先相除在等於

a/=5;相當於a=a/5;

a 等於1

%=

先取余數在等於

a%=5;相當於a=a%5;

a 等於3

※假設a等於8,b等於2
比較運算

運算符

說明

範例

執行結果

==

等於

a==5

F

!=

不等於

a!=5

T

<<o:p>

小於

a<5

F

>

大於

a>5

T

<=

小於等於

a<=5

F

>=

大於等於

a>=5

T

※比較運算結果是個布爾值既TRUE(真值)或FALSE(假值)。假設a等於8

邏輯運算

運算符

說明

範例

執行結果

&&

AND

(a>5)&&(a<10)

T

||

OR

(a<5)||(a>10)

F

!

NOT

!(a>10)

T

※邏輯運算結果是個布爾值既TRUE(真值)或FALSE(假值)。假設a等於8
位邏輯運算

運算符

說明

範例

執行結果

&

AND

a&0x01

a等於1

|

OR

a|0x80

a等於0x85

~

NOT

~a

a等於0xFA

^

XOR

a^0xFF

a等於0xFA

<<

左移

a<<1

a等於0x0A

>>

右移

a>>1

a等於0x0A

※假設a等於5
----------------------------------------------------控制命令---------------------------------------------------
if語句
if(條件) 語句1;
else 語句2;
例:if(d==4) d=0; //如果d等於4就設置d等於0
else d++; //否則就將d加1
if(ticks==0) { //如果ticks等於0
ticks=1000; //ticks 設置成1000
counter[0]++; //counter[0]加1
}

嵌套if語句
例:if(counter[0]==10) {
counter[1]++;
counter[0]=0;
if(counter[1]==10) {
counter[2]++;
counter[1]=0;
}
}

switch語句
switch (變數) {
case 常量1:語句1; break;
case 常量2:語句2; break;
case 常量3:語句3; break;
......
default ; 語句n;
}
for循環
for (初值,條件,變化值) 語句;
例:for(i=0;i<10;i++) x=x+i;
for(i=1;i<10,i++)
for(j=1;j<10,j++)
printf(「%d %d」,i,j);
無窮循環:
for( ; ; );

while循環
while (條件) 語句;
例:while (ch!=!』A』) ch=getche();
無窮循環:
while(1);

do/while循環
do {
語句;
...
} while(條件);
例:do {
ch=getche();
} while (ch!=」A」);

goto語句
loop1:
x++;
if(x<100) goto loop1;
----------------------------------------------------指針和函數------------------------------------------------
指針的定義
數據類型 *指針變數的名字;
例: char *p;
int *x;

指針與數組
例: char filename[80];
char *p;
p=filename; //指針p存放filename的開始地址

int x[5]={1,2,3,4,5};
int *p,sum,i;
p=x; //指針p存放數組x的開始地址
for(i=0;i<5;i++)
sum=sum+p[i]; //p[i]相當於x[i]

指針的運算
1.針變數前面加上*號就是取得指針所指向位置的內容。
例:int x[5]={1,2,3,4,5};
int *p;
p=x; //指針p存放數組x的開始地址
*p=10; //相當於設置x[0]等於10
2.變數前面加上&符號,可以取得一個變數的位置。
例:int x,y;
int *p;
p=&x; //指針p存放x的地址,相當於p是指向x 的指針
*p=1; //相當於設置x等於1
3.&符號也可以加在數組的前面
例:int x[5];
int *p;
p=&x[2]; //指針p存放x[2]的地址,相當於p是指向x[2]的指針
*p=50; //相當於設置x[2]等於50
函數
函數類型 函數名稱(參數序列);
參數說明
{
函數的主體
}
例:void delay (void) { //不返回任何數據的函數
unsigned char i,j; //沒有任何參數的函數
for(i=0,i<255,i++)
for(j=0,j<255,j++);
}
main()
{
...
delay(); //調用函數
}
例:unsigned char sum(unsigned chat a,unsigned chat b)
{
unsigned chat x;
check_GLCD_busyflag(); //函數中可以調用另一個函數
x=a+b;
return x; //return會返回x的數據
}
中斷服務函數
void 中斷服務程序的名稱(void) interrupt 中斷號碼using 寄存器組號碼
{
中斷服務子程序主體
}

中斷號碼
#define IE0_VECTOR 0 //0x03
#define TF0_VECTOR 1 //0x0B
#define IE1_VECTOR 2 //0x13
#define TF1_VECTOR 3 //0x1B
#define SIO_VECTOR 4 //0x23
對於S51有定時器2
#define TF2_VECTOR 5 //0x2B
例:static void xint0_isr(void) interrupt IE0_VECTOR(或0) using 1
{
unsigned char i,j=0xFF;
for(i=0,i<16,i++)
{
j++;
P1=j; //將數值輸出到P1口
delay_4isr();
}
}
-----------------------------------------------------匯編語言--------------------------------------------------
在C中加入匯編語言
例:void delay100us()
{
#pragma asm
mov r7,#1
more: mov r3,#48
djnz r3,$
djnz r7,more
#pragma endasm
}
----------------------------------------------------宏(macro)----------------------------------------------
宏的定義
%*define (macro名稱) (macro的指令)
例:%*define (write_1) (
setb DI
serb SK
clr SK
)

#define 宏的名稱 宏的指令
例:#define uchar unsigned char

C語言中的符號總結
運算符的種類C語言的運算符可分為以下幾類;
1. 算術運算符
用於各類數值運算,包括加減乘除求余自增自減共七種運算
{ ( + ) ,( - ),(* ) ,( / ) ,( % ),( ++ ),(-- )}。
2. 關系運算符
用於比較運算,包括大於(>),小於(<</span>),等於(==),大於等於(>=),
小於等於(<=),不等於(!=)共六種。
3.邏輯運算符
用於邏輯運算,包括與(&&)或(||)非(!)三種.
4.位操作運算符
參與運算的量,按二進制位進行運算,包括:
位與(&),位或(|),位非(~),為異或(^),左移(<<),右移(>>)共六種。
5.賦值運算符
用於賦值運算,分為:
簡單賦值(=)
復合算術賦值(+=,-=,*=,/=,%=)
復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
6.條件運算符
這是一個三目運算符,用於條件求值(?:)。
7.逗號運算符
用於把若干表達式組合成一個表達式(,)。
8.指針運算符
用於取內容(*)和取地址(&)兩種運算。
9.求位元組數運算符
用於計算數據類型所佔用的位元組數(sizeof)。
10.特殊運算符
有括弧(),下標[],成員(→, .)

1.C的數據類型
基本類型,構造類型,指針類型,空類型
2.基本類型的分類及特點
類型說明符 位元組 數值范圍
字元型char 1 C字元集
基本整型int 2 -32768~32767
短整型short int 2 -32768~32767
長整型 long int 4 -214783648~214783647
無符號型 unsigned 2 0~65535
無符號長整型 unsigned long 4 0~4294967295
單精度實型 float 4 3/4E-38~3/4E+38
雙精度實型 double 8 1/7E-308~1/7E+308
3.常量後綴
L或l 長整型
U或u 無符號數
F或f 浮點數
4.常量類型
整數,長整數,無符號數,浮點數,字元,字元串,符號常數,轉義字元。
5.數據類型轉換
a自動轉換
在不同類型數據的混合運算中,由系統自動實現轉換, 由少位元組類型向多位元組類型轉換。 不同類型的量相互賦值時也由系統自動進行轉換,把賦值號右邊的類型轉換為左邊的類型。
b強制轉換
由強制轉換運算符完成轉換。
6.運算符優先順序和結合性
一般而言,單目運算符優先順序較高,賦值運算符優先順序低。 算術運算符優先順序較高,關系和邏輯運算符優先順序較低。 多數運算符具有左結合性,單目運算符、三目運算符、 賦值
7.表達式
表達式是由運算符連接常量、變數、函數所組成的式子。 每個表達式都有一個值和類型。 表達式求值按運算符的優先順序和結合性所規定的順序進行。

表示輸出類型的格式字元 格式字元意義
d 以十進制形式輸出帶符號整數(正數不輸出符號)
o 以八進制形式輸出無符號整數(不輸出前綴O)
x 以十六進制形式輸出無符號整數(不輸出前綴OX)
u 以十進制形式輸出無符號整數
f 以小數形式輸出單、雙精度實數
e 以指數形式輸出單、雙精度實數
g 以%f%e中較短的輸出寬度輸出單、雙精度實數
c 輸出單個字元
s 輸出字元串
標志字元為-、+、#、空格四種,其意義下表所示:
標志格式字元 標 志 意 義
- 結果左對齊,右邊填空格
+ 輸出符號(正號或負號)空格輸出值為正時冠以空格,為負時冠以負號
# 對c,s,d,u類無影響;對o類, 在輸出時加前
綴o 對x類,在輸出時加前綴0x;對e,g,f 類當結果有小數時才給出小數點
格式字元串

格式字元串的一般形式為: %[*][輸入數據寬度][長度]類型 其中有方括弧[]的項為任選項。各項的意義如下:
1.類型
表示輸入數據的類型,其格式符和意義下表所示。
格式 字元意義
d 輸入十進制整數
o 輸入八進制整數
x 輸入十六進制整數
u 輸入無符號十進制整數
f或e 輸入實型數(用小數形式或指數形式)
c 輸入單個字元
s 輸入字元串
轉義字元
轉義字元是一種特殊的字元常量。轉義字元以反斜線」\」開頭,後跟一個或幾個字元。轉義字元具有特定的含義,不同於字元原有的意義,故稱「轉義」字元。例如,在前面各例題printf函數的格式串中用到的「\n」就是一個轉義字元,其意義是「回車換行」。轉義字元主要用來表示那些用一般字元不便於表示的控制代碼。
常用的轉義字元及其含義
轉義字元 轉義字元的意義
\n 回車換行
\t 橫向跳到下一製表位置
\v 豎向跳格
\b 退格
\r 回車
\f 走紙換頁
\\ 反斜線符」\」
\』 單引號符
\a 鳴鈴
\ddd 1~3位八進制數所代表的字元
\xhh 1~2位十六進制數所代表的字元
廣義地講,C語言字元集中的任何一個字元均可用轉義字元來表示。表2.2中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進制和十六進制的ASCII代碼。如\101表示字?quot;A」 ,\102表示字母」B」,\134表示反斜線,\XOA表示換行等。轉義字元的使用
在C語言中,對變數的存儲類型說明有以下四種:
auto 自動變數
register 寄存器變數
extern 外部變數
static 靜態變數
自動變數和寄存器變數屬於動態存儲方式, 外部變數和靜態變數屬於靜態存儲方式。在介紹了變數的存儲類型之後, 可以知道對一個變數的說明不僅應說明其數據類型,還應說明其存儲類型。 因此變數說明的完整形式應為: 存儲類型說明符 數據類型說明符 變數名,變數名…; 例如:
static int a,b; 說明a,b為靜態類型變數
auto char c1,c2; 說明c1,c2為自動字元變數
static int a[5]={1,2,3,4,5}; 說明a為靜整型數組
extern int x,y; 說明x,y為外部整型變數
與指針有關的各種說明和意義見下表。
int *p; p為指向整型量的指針變數
int *p[n]; p為指針數組,由n個指向整型量的指針元素組成。
int (*p)[n]; p為指向整型二維數組的指針變數,二維數組的列數為n
int *p() p為返回指針值的函數,該指針指向整型量
int (*p)() p為指向函數的指針,該函數返回整型量
int **p p為一個指向另一指針的指針變數,該指針指向一個整型量。

指針變數的賦值
p可以有以下兩種方式:
(1)指針變數初始化的方法 int a;
int *p=&a;
(2)賦值語句的方法 int a;
int *p;
p=&a;

(1)取地址運算符&
(2)取內容運算符*