最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言數(shù)據(jù)類型和變量使用及說明

 更新時間:2026年01月17日 13:57:34   作者:Pihria  
本文介紹了C語言中的數(shù)據(jù)類型、變量、算術(shù)和賦值操作符、單目操作符、強(qiáng)制類型轉(zhuǎn)換以及輸入輸出函數(shù)printf和scanf的使用

一、數(shù)據(jù)類型介紹

所謂“類型”,就是相似的數(shù)據(jù)所擁有的共同特征,編譯器只有知道了數(shù)據(jù)的類型,才知道怎么操作 數(shù)據(jù)。

使用整型類型來描述整數(shù),使用字符類型來描述字符,使用浮點(diǎn)型類型來描述小數(shù)。

C語言的數(shù)據(jù)類型有倆種:內(nèi)置類型和自定義類型:

  • 內(nèi)置類型:字符型、整型、浮點(diǎn)型、布爾類型
  • 自定義類型:數(shù)組、結(jié)構(gòu)體-struct、枚舉-enum、聯(lián)合體-union

1.1字符型

字符的英文單詞是 character ,在C語言中使用 char 表示字符類型。

char             //character
signed char;     //有符號的
unsigned char;   //無符號的

1.2整型

整數(shù)的英文單詞是 integer ,在C語言中使用 int 表示整型類型。

//短整型  
short [int]
[signed] short [int]
unsigned short [int]

//整型 
int
[signed] int
unsigned int

//?整型 
long [int]
[signed] long [int]
unsigned long [int]

//更?的整型 
//C99中引? 
long long [int]
[signed] long long [int]
unsigned long long [int]

1.3浮點(diǎn)型

float        //單精度浮點(diǎn)型
double       //雙精度浮點(diǎn)型
long double  //更高精度

1.4布爾類型

在C99中引入的布爾類型專門表示真假

布爾類型的使用需要包含頭文件<stdbool.h>

布爾類型變量的取值是:truefalse

define bool _Bool

#define false 0

#define true 1

演示:
_Bool flag = true;
if (flag)
  printf("i like C\n");

1.5各種數(shù)據(jù)類型的長度

每?種數(shù)據(jù)類型都有自己的長度,使?不同的數(shù)據(jù)類型,能夠創(chuàng)建出長度不同的變量,變量長度的不 同,存儲的數(shù)據(jù)范圍就有所差異。

1.5.1 sizeof操作符

sizeof 是?個關(guān)鍵字,也是操作符,專門是用來計(jì)算 sizeof 的操作符數(shù)的類型長度的,單位是字節(jié)。 sizeof 操作符的操作數(shù)可以是類型,也可是變量或者表達(dá)式。

sizeof ( 類型 )
sizeof 表達(dá)式

sizeof 的操作數(shù)如果不是類型,是表達(dá)式的時候,可以省略掉后邊的括號的。

sizeof 后邊的表達(dá)式是不真實(shí)參與運(yùn)算的,根據(jù)表達(dá)式的類型來得出大小。

sizeof 的計(jì)算結(jié)果是 size_t 類型的。C語言創(chuàng)造了?個類型別名 size_t ,用來統(tǒng)?表示 sizeof 的返回值類型。對應(yīng)當(dāng)前系統(tǒng)的 sizeof 的返回值類型,可能是 unsigned int ,也可能是 unsigned long long 。

#include <stdio.h>

int main()
{
   int a = 10;
   printf("%zd\n", sizeof(a));
   printf("%zd\n", sizeof a );  //a是變量的名字,可以省略掉sizeof后邊的() 
   printf("%zd\n", sizeof(int));
   printf("%zd\n", sizeof(3 + 3.5));
   return 0;
}

1.5.2 數(shù)據(jù)類型長度

#include <stdio.h>

int main()
{
   printf("%zd\n", sizeof(char));        輸出1
   printf("%zd\n", sizeof(_Bool));       輸出1
   printf("%zd\n", sizeof(short));       輸出2
   printf("%zd\n", sizeof(int));         輸出4
   printf("%zd\n", sizeof(long));        輸出4
   printf("%zd\n", sizeof(long long));   輸出8
   printf("%zd\n", sizeof(float));       輸出4
   printf("%zd\n", sizeof(double));      輸出8
   printf("%zd\n", sizeof(long double)); 在VS上輸出8,在gcc上輸出16
   return 0;
}

1.5.3 sizeof中表達(dá)式不計(jì)算

#include <stdio.h>

int main()
{
   short s = 2;
   int b = 10;
   printf("%d\n", sizeof(s = b+1));
   printf("s = %d\n", s);
   return 0;
}

sizeof 在代碼進(jìn)行編譯的時候,就根據(jù)表達(dá)式的結(jié)果的類型,推到并確定了類型的長度,而表達(dá)式 真要被執(zhí)行,卻要在程序運(yùn)行期間才會發(fā)生,如果在編譯期間已經(jīng)將 sizeof 處理掉了,所以在運(yùn)行期間就不會執(zhí)行表達(dá)式了。

二、signed和unsigned

C語言使用signed 和 unsigned 關(guān)鍵字修飾字符型和整型類型的。

signed 關(guān)鍵字,表示?個類型帶有正負(fù)號,包含負(fù)值; unsigned 關(guān)鍵字,表示該類型不帶有正負(fù)號,只能表示零和正整數(shù)。

如:

對于 int 類型,默認(rèn)是帶有正負(fù)號的,也就是說  int  等同于 signed int 。

由于這是默認(rèn)情況,關(guān)鍵字 signed ?般都省略不寫,但是寫了也不算錯。

int 類型也可以不帶正負(fù)號,只表示非負(fù)整數(shù)。這時就必須使用關(guān)鍵字 unsigned 聲明變量。

unsigned int 里面的 int 可以省略,所以 unsigned int a 也可以寫成 unsiged a 。

但是 char 不等同于 signed char,它可能是signed char,也可能是unsigned char 。

三、數(shù)據(jù)類型的取值范圍

每?種數(shù)據(jù)類型有自己的取值范圍,也就是存儲的數(shù)值的最大值和最小值的區(qū)間

某種整數(shù)類型的極限值,應(yīng)該盡量使用這些常量。

  • SCHAR_MIN , SCHAR_MAX :signed char 的最小值和最大值。
  • SHRT_MIN , SHRT_MAX :short 的最小值和最大值。
  • INT_MIN , INT_MAX :int 的最小值和最大值。
  • LONG_MIN , LONG_MAX :long 的最小值和最大值。
  • LLONG_MIN , LLONG_MAX :long long 的最小值和最大值。
  • UCHAR_MAX :unsigned char 的最大。
  • USHRT_MAX :unsigned short 的最大值。
  • UINT_MAX :unsigned int 的最大值。
  • ULONG_MAX :unsigned long 的最大值。
  • ULLONG_MAX :unsigned long long 的最大值。

四、變量

4.1 變量的創(chuàng)建

類型是干什么的?類型是創(chuàng)建變量

那變量是什么呢?變量是經(jīng)常變化的量

不變的量稱為常量

變量創(chuàng)建的語法形式如下:

my_student name;

 數(shù)據(jù)類型  變量名

變量命名的?般規(guī)則:

  • 只能由字母(包括大寫和小寫)、數(shù)字和下劃線(` _ `)組成。
  • 不能以數(shù)字開頭。
  • 長度不能超過63個字符。
  • 變量名中區(qū)分大小寫的。
  • 變量名不能使用關(guān)鍵字。
int age;        //整型變量 
char ch;        //字符變量 
double weight;  //浮點(diǎn)型變量 

變量在創(chuàng)建的時候就給一個初始值,為初始化

int age = 18;
char ch = 'h';
double weight = 45.0;
unsigned int height = 90;

4.2 變量的分類

  • 全局變量:在大括號外部定義的變量就是全局變量全局變量的使用范圍更廣,整個代碼中想使用,都是有辦法使用的。
  • 局部變量:在大括號內(nèi)部定義的變量就是局部變量局部變量的使用范圍是比較局限,只能在自己所在的局部范圍內(nèi)使用的。
#include <stdio.h>

int time = 2026;   //全局變量 
int main()
{
   int last = 2025;  //局部變量 
   printf("%d\n", time);
   printf("%d\n", last);
   return 0;
}

當(dāng)全局變量和局部變量的名字相同時,局部變量優(yōu)先使用

#include <stdio.h>

int n = 1000;
int main()
{
   int n = 10;
   printf("%d\n", n);//打印出10
   return 0;
}

全局變量和局部變量在內(nèi)存中存儲在哪里?

內(nèi)存中有三個區(qū)域:棧區(qū)、堆區(qū)、靜態(tài)區(qū)。

  • 1. 局部變量是放在內(nèi)存的棧區(qū)
  • 2. 全局變量是放在內(nèi)存的靜態(tài)區(qū)
  • 3. 堆區(qū)是用來動態(tài)內(nèi)存管理的

五、 算術(shù)操作符(運(yùn)算符):+、-、*、/、%

5.1 + 和 -

位于操作符倆端的就是它們的操作數(shù),這種操作符也叫雙目操作符 

#include <stdio.h>

int main()
{
   int x = 4 + 18;
   int y = 32 - 23;
   printf("%d\n", x);
   printf("%d\n", y);
   return 0;
}

5.2 *

#include <stdio.h>

int main()
{
   int num = 5;
   printf("%d\n", num * num); // 輸出 25 
   return 0;
}

5.3 /

除號的兩端如果是整數(shù),執(zhí)行的是整數(shù)除法,得到的結(jié)果也是整數(shù)。

#include <stdio.h>

int main()
{
   float x = 6 / 4;
   int y = 6 / 4;
   printf("%f\n", x); // 輸出 1.000000 
   printf("%d\n", y); // 輸出 1 
   return 0;
}

倆個運(yùn)算數(shù)至少有一個是浮點(diǎn)數(shù)時,進(jìn)行浮點(diǎn)數(shù)除法,得到浮點(diǎn)數(shù)的結(jié)果

#include <stdio.h>

int main()
{
   float x = 6.0 / 4; // 或者寫成 6 / 4.0 
   printf("%f\n", x); // 輸出 1.500000 
   return 0;
}

5.4 %

運(yùn)算符 % 表示模(余)運(yùn)算,即返回兩個整數(shù)相除的余值。這個運(yùn)算符只用于整數(shù),不能用于浮點(diǎn) 數(shù)。

#include <stdio.h>

int main()
{
   int x = 6 % 4; 
   printf("%d",x);  //輸出2
   return 0;
}

負(fù)數(shù)求模的結(jié)果的正負(fù)號由第?個運(yùn)算數(shù)的正負(fù)號決定。

#include <stdio.h>

int main()
{
   printf("%d\n", 11 % -5); // 1
   printf("%d\n",-11 % -5); // -1
   printf("%d\n",-11 % 5); // -1
   return 0;
}

六、 賦值操作符:=和復(fù)合賦值

在變量創(chuàng)建的時候給?個初始值叫初始化,在變量創(chuàng)建好后,再給?個值,就是賦值。

int a = 100;  //初始化 
a = 200;  //賦值,這? = 就是賦值操作符 

賦值操作符 = 是?個隨時可以給變量賦值的操作符。

6.1 連續(xù)賦值

int a = 3;
int b = 4;
int c = 8;
c = b = a+3;  //連續(xù)賦值,從右向左依次賦值的。

C語言雖然支持連續(xù)賦值,但是代碼不易理解,建議拆開來寫。

int a = 3;
int b = 4;
int c = 8;
b = a + 3;
c = b;

6.2 復(fù)合賦值符

復(fù)合賦值法即對?個數(shù)進(jìn)行自增、自減的操作。

int a = 18;
a = a+3;
a = a-2;

也可以寫成:
a += 3;
a -= 2;

C語言中常見的復(fù)合賦值符如下:

+=    -=

*=     /=    %=  

>>=     <<=

&=    |=    ^=

七、 單目操作符:++、--、+、-

7.1 ++和--

++是?種自增的操作符,分為前置++和后置++,--是?種自減的操作符,也分為前置--和后置--

7.1.1 前置++(前置--)

先+1(-1),后使用

int a = 10;
int b = ++a;   //++的操作數(shù)是a,是放在a的前?的,就是前置++ 
               //a+1后變成11,在使用就是賦值給b,所以a b均為11
printf("a=%d b=%d\n",a , b);   輸出   11 11
int a = 10;
int b = --a;    //--的操作數(shù)是a,是放在a的前?的,就是前置-- 
printf("a=%d b=%d\n",a , b);   //輸出的結(jié)果是:9 9 

7.1.2 后置++(后置--)

先使用,后+1(-1)

int a = 10;
int b = a++;   //++的操作數(shù)是a,是放在a的后?的,就是后置++ 
               //先使用a,就是先賦值給b,b得到10,然后再+1,a變成11
printf("a=%d b=%d\n",a , b);  //輸出 11 10
int a = 10;
int b = a--;      //--的操作數(shù)是a,是放在a的后?的,就是后置-- 
printf("a=%d b=%d\n",a , b);  //輸出的結(jié)果是:9 10 

7.2 + 和 -

+ 是正號,- 是負(fù)號,都是單目操作符

運(yùn)算符 + 對正負(fù)值沒有影響,是?個完全可以省略的運(yùn)算符,但是寫了也不會報(bào)錯。

運(yùn)算符 - 用來改變?個值的正負(fù)號,負(fù)數(shù)的前面加上 - 就會得到正數(shù),正數(shù)的前面加上 - 會得到負(fù) 數(shù)。

int a = 10;
int b = -a;
int c = -10;
printf("b=%d c=%d\n", b, c);   //b和c都是-10 

int a = -10;
int b = -a;
printf("b=%d\n", b);   //b是10 

八、強(qiáng)制類型轉(zhuǎn)換

int a = 3.14;
//a的是int類型, 3.14是double類型,兩邊的類型不?致,編譯器會報(bào)警告 

int a = (int)3.14;
//意思是將3.14強(qiáng)制類型轉(zhuǎn)換為int類型,這種強(qiáng)制類型轉(zhuǎn)換只取整數(shù)部分

一般情況下,不使用強(qiáng)制類型轉(zhuǎn)化實(shí)現(xiàn)代碼

萬不得已情況下,才使用強(qiáng)制類型轉(zhuǎn)化

九、printf 和 scanf 介紹

9.1 printf

9.1.1 基本用法

printf() 的作用是將參數(shù)文本輸出到屏幕

printf() 不會在行尾自動添加換行符,運(yùn)行結(jié)束后,光標(biāo)就停留在輸出結(jié)束的地方,不會自動換 行。

在輸出文本的末尾,添加換行符 \n ,使光標(biāo)移到下一行的開頭。

#include <stdio.h>

int main() 
{
   printf("Hello World");
   return 0;
}


int main() 
{
   printf("Hello World\n");
   return 0;
}

printf() 是在標(biāo)準(zhǔn)庫的頭文件 <stdio.h> 定義的。使用printf前,必須包含頭文件 <stdio.h> 。

9.1.2占位符

占位符,就是這個位置可以用其他值代入。

#include <stdio.h>

int main()
{
   printf("There are %d boxes\n", 3);
   //輸出There are 3 boxes
   return 0;
}

%d 就是占位符,這個位置可以用其他值代替。

占位符的第二個字符表示占位的類型,%d表示這里代入的必須是一個整數(shù),如上面中的3。

輸出的文本中可以使用多個占位符。

printf() 參數(shù)與占位符是一一對應(yīng)關(guān)系,如果有 n 個占位符, printf() 的參數(shù)就應(yīng)該有 n + 1 個。如果參數(shù)個數(shù)少于對應(yīng)的占位符, printf() 可能會輸出內(nèi)存中的任意值。

#include <stdio.h>

int main()
{
   printf("%s says it is %d o'clock\n", "zhangsan", 18);
   //有倆個占位符,第一個%s ,第二個%d                                            
   //分別對應(yīng) printf() 的第二個(zhangsan)和三個參數(shù)(18)
   return 0;
}

9.1.3 占位符列舉

常見的占位符(加粗為常用的占位符):

  • %a :十六進(jìn)制浮點(diǎn)數(shù),字母輸出為小寫。
  • %A :十六進(jìn)制浮點(diǎn)數(shù),字母輸出為大寫。
  • %c :字符。//char
  • %d :十進(jìn)制整數(shù)(有符號的10進(jìn)制整數(shù))。// int
  • %e :使用科學(xué)計(jì)數(shù)法的浮點(diǎn)數(shù),指數(shù)部分的 e 為小寫。
  • %E :使用科學(xué)計(jì)數(shù)法的浮點(diǎn)數(shù),指數(shù)部分的 E 為大寫。
  • %i :整數(shù),基本等同于 %d 。
  • %f :小數(shù)(包含 float 類型和 double 類型)。//float %f    double - %lf
  • %g :6個有效數(shù)字的浮點(diǎn)數(shù)。整數(shù)部分?旦超過6位,就會自動轉(zhuǎn)為科學(xué)計(jì)數(shù)法,指數(shù)部分的 e 為小寫。
  • %G :等同于 %g ,唯?的區(qū)別是指數(shù)部分的 E 為大寫。
  • %hd :十進(jìn)制 short int 類型。
  • %ho :八進(jìn)制 short int 類型。
  • %hx :十六進(jìn)制 short int 類型。
  • %hu :unsigned short int 類型。
  • %ld :十進(jìn)制 long int 類型。
  • %lo :八進(jìn)制 long int類型。
  • %lx :十六進(jìn)制 long int 類型。
  • %lu :unsigned long int 類型。
  • %lld :十進(jìn)制 long long int 類型。
  • %llo :八進(jìn)制 long long int 類型。
  • %llx :十六進(jìn)制 long long int 類型。
  • %llu :unsigned long long int 類型。
  • %le :科學(xué)計(jì)數(shù)法表示的 long double 類型浮點(diǎn)數(shù)。
  • %lf :long double 類型浮點(diǎn)數(shù)。
  • %n :已輸出的字符串?dāng)?shù)量。該占位符本身不輸出,只將值存儲在指定變量之中。
  • %o :八進(jìn)制整數(shù)。
  • %p :指針(用來打印地址)。
  • %s :字符串。
  • %u :無符號整數(shù)(unsigned int)。
  • %x :十六進(jìn)制整數(shù)。
  • %zd : size_t 類型。
  • %% :輸出?個百分號。

9.1.4 輸出格式

9.1.4.1限定寬度

printf() 允許限定占位符的最小寬度。

%5d 表示這個占位符的寬度至少為5位。如果不滿5位,對應(yīng)的值的前面會添加空格。輸出的值默認(rèn)右對齊;想輸出左對齊時,在%后面加 - ,即 %-5d 

#include <stdio.h>

int main()
{
    printf("%5d\n", 123);    // 輸出為 "  123" 
    printf("%-5d\n", 123);   // 輸出為 "123  "
    return 0;
}

對于小數(shù),會限制所有數(shù)字的最小顯示寬度。

#include <stdio.h>

int main()
{
   printf("%12f\n", 123.45);  //輸出"  123.450000"
   return 0;
}

%12f 表示輸出的浮點(diǎn)數(shù)最少要占據(jù)12位。由于小數(shù)的默認(rèn)顯示精度為小數(shù)點(diǎn)后6位, 所以 123.45 輸出結(jié)果的頭部會添加2個空格。

9.1.4.2 限定小數(shù)位數(shù)

當(dāng)限定小數(shù)位數(shù)為2時,占位符可寫為%.2f

#include <stdio.h>

int main()
{
   printf("%.2f\n", 0.5);  //輸出"0.50"
   return 0;
}

與限定寬度結(jié)合使用時

#include <stdio.h>

int main()
{
   printf("%5.2f\n", 0.5);    //輸出" 0.50"
   return 0;
}

最小寬度和小數(shù)位數(shù)都可以用 * 表示

#include <stdio.h>

int main()
{
   printf("%*.*f\n", 5, 2, 0.5);
   // 同于printf("%5.2f\n", 0.5);
   return 0;
}

9.1.4.3 輸出部分字符串

%s 占位符用來輸出字符串,默認(rèn)是全部輸出。如果只想輸出開頭的部分,可以用 %.ns 指定輸出 的長度,其中 n 代表?個數(shù)字,表示所要輸出的長度。

#include <stdio.h>

int main()
{
   printf("%.5s\n", "hello world");     //,只輸出前五個,"hello"
   return 0;
}

9.2 scanf

當(dāng)我們需要在屏幕上輸入時,就可以用 scanf 函數(shù)

#include <stdio.h>

int main()
{
   int amount = 0;
   printf("請輸?金額:");
   scanf("%d", &amount);
   printf("金額是:%d\n", amount);
   return 0;
}

運(yùn)行之后是:
請輸入金額:5
金額是:5

9.2.1 基本用法

scanf() 函數(shù)用于讀取用戶的鍵盤輸入。

程序運(yùn)行到這個語句時,會停下來,等待用戶從鍵盤輸入。

用戶輸入數(shù)據(jù)、按下回車鍵后, scanf() 就會處理用戶的輸入,將其存入變量。

它定義在頭文件 <stdio.h> 中 。

scanf() 的語法跟 printf() 類似。

int i = 0;
scanf("%d", &i);

%d 占位符與 printf 基本類似,告訴編譯器輸入的類型

&i 表示用戶從鍵盤輸入的整數(shù)存入變量 i 。

變量 i 前必須加上 &指針變量除外),scanf傳遞的是地址,不是值,scanf將變量 i 的地址指向用戶輸入的值。

變量是指針變量時,不需要&。

scanf("%d%d%f%f", &x, &y, &a, &b);
//前兩個用戶輸入的是整數(shù),后兩個是浮點(diǎn)數(shù)(小數(shù)),依次放入x,y,a,b。

scanf() 處理數(shù)值占位符時,會自動過濾空白字符,包括空格、制表符、換行符

所以用戶輸入的數(shù)據(jù)之間有空格、使用回車鍵不影響 scanf 解讀輸入數(shù)據(jù)

但是使用回車鍵時,每次按下回車鍵以后, scanf() 就會開始解讀,如果第?行匹配第?個占位符,那么下次按下回車鍵時,就會從第?個占位符開始解讀。

scanf() 處理用戶輸入的原理是,用戶的輸入先放入緩存,等到按下回車鍵后,按照占位符對緩存 進(jìn)行解讀。

解讀用戶輸入時,會從上?次解讀遺留的第?個字符開始,直到讀完緩存,或者遇到第?個不符合條件的字符為止。

#include <stdio.h>

int main()
{
   int x;
   float y;
 
   // 輸入 "  123.45# 0" 
   scanf("%d%f", &x, &y);
   return 0;
}

scanf() 讀取用戶輸入時, %d 占位符會忽略空格,從 1 處開始獲取數(shù)據(jù),讀到 3 停下來,因?yàn)楹?的 . 不屬于整數(shù)的有效字符。就是 %d 會讀到123。

第二次調(diào)用時,scanf() 就會從上?次停止解讀的地方,繼續(xù)往下讀取。這?次讀取的收字符是 . ,由于對應(yīng)的占位符是 %f ,會讀取到 .45。后面的 # 不屬于浮點(diǎn)數(shù)的有效字符,所以會停在這?。

9.2.2 scanf 的返回值

scanf() 的返回值是?個整數(shù),表示成功讀取的變量個數(shù)。

如果沒有讀取任何項(xiàng),或者匹配失敗,則返回 0 。

如果在成功讀取任何數(shù)據(jù)之前,發(fā)生了讀取錯誤或者遇到讀取到文件結(jié)尾,則返回常量 EOF(-1)。

#include <stdio.h>

int main()
{
   int a = 0;
   int b = 0;
   float f = 0.0f;
   int x = scanf("%d %d %f", &a, &b, &f); //輸入 1 2 3.45    x輸出3
   printf("a=%d b=%d f=%f\n", a, b, f)    //輸入 1 2 3       x輸出3,f的值是3.0000
   printf("x = %d\n", x);                 //輸入 1 ,2 3.45  x輸出1,只成功讀取a
   return 0;                              //輸入 1.1 2 3.14  x輸出0,解析第一個失敗
}                                         

9.2.3 占位符

scanf() 常用的占位符,與 printf() 的占位符基本?致,使用時也基本一致。

在使用占位符時,除 %c 以外,會自動忽略空白字符,如果要強(qiáng)制忽略,在使用%c時,在%c前面加空格,scanf("  %c", &ch)。

%s ,它不能簡單地等同于字符串。它從第?個非空白字符開始讀起,直到遇到空白字符(即空格、換行符、制表符等)為止。%s 不會包含空白字符,所以無法用來讀取多個單詞。scanf() 遇到 %s 占位符時,會在字符串變量末尾存儲?個空字符 \0 。

9.2.4 賦值忽略符

加在任何占位符的百分號后面,該占位符就不會返回值,解析后將被丟棄。

scanf("%d%*c%d%*c%d", &year, &month, &day);
//輸入 2026-1-16 時-會被丟棄

%*c 就是在占位符的百分號后面,加入了賦值忽略符 * ,表示這個占位符沒有對應(yīng)的變量,解讀后不必返回。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Qt優(yōu)雅實(shí)現(xiàn)線程安全單例模式(模板化和自動清理)

    Qt優(yōu)雅實(shí)現(xiàn)線程安全單例模式(模板化和自動清理)

    在 Qt 開發(fā)中,單例模式是高頻使用的設(shè)計(jì)模式,本文將基于模板封裝 + 管理器的設(shè)計(jì)思路,實(shí)現(xiàn)一套可直接復(fù)用的單例框架,并詳細(xì)講解其設(shè)計(jì)原理與最佳實(shí)踐,有需要的可以了解下
    2025-11-11
  • C/C++中的?Qt?StandardItemModel?數(shù)據(jù)模型應(yīng)用解析

    C/C++中的?Qt?StandardItemModel?數(shù)據(jù)模型應(yīng)用解析

    QStandardItemModel?是標(biāo)準(zhǔn)的以項(xiàng)數(shù)據(jù)為單位的基于M/V模型的一種標(biāo)準(zhǔn)數(shù)據(jù)管理方式,本文給大家介紹C/C++中的?Qt?StandardItemModel?數(shù)據(jù)模型應(yīng)用解析,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • C語言實(shí)現(xiàn)軍旗游戲的示例代碼

    C語言實(shí)現(xiàn)軍旗游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)軍旗游戲,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-11-11
  • C++中函數(shù)使用的基本知識學(xué)習(xí)教程

    C++中函數(shù)使用的基本知識學(xué)習(xí)教程

    這篇文章主要介紹了C++中函數(shù)使用的基本知識學(xué)習(xí)教程,涵蓋了函數(shù)的聲明和參數(shù)以及指針等各個方面的知識,非常全面,需要的朋友可以參考下
    2016-01-01
  • C++調(diào)用C函數(shù)報(bào)錯無法解析的外部命令/無法解析的外部符號問題

    C++調(diào)用C函數(shù)報(bào)錯無法解析的外部命令/無法解析的外部符號問題

    這篇文章主要介紹了C++調(diào)用C函數(shù)報(bào)錯無法解析的外部命令/無法解析的外部符號問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語言二叉排序(搜索)樹實(shí)例

    C語言二叉排序(搜索)樹實(shí)例

    這篇文章主要為大家詳細(xì)介紹了C語言二叉排序樹實(shí)例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • C++11新特性之隨機(jī)數(shù)庫(Random?Number?Library)詳解

    C++11新特性之隨機(jī)數(shù)庫(Random?Number?Library)詳解

    相對于C++11之前的隨機(jī)數(shù)生成器來說,C++11的隨機(jī)數(shù)生成器是復(fù)雜了很多,下面這篇文章主要給大家介紹了關(guān)于C++11新特性之隨機(jī)數(shù)庫(Random?Number?Library)的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • C++淺析數(shù)據(jù)在內(nèi)存中如何存儲

    C++淺析數(shù)據(jù)在內(nèi)存中如何存儲

    使用編程語言進(jìn)行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么
    2022-08-08
  • 基于Matlab制作偽3D第一視角迷宮小游戲

    基于Matlab制作偽3D第一視角迷宮小游戲

    這篇文章主要為大家詳細(xì)介紹了如何利用Matlab語言制作偽3D第一視角迷宮小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手嘗試一下
    2022-07-07
  • OpenCV圖像輪廓提取的實(shí)現(xiàn)

    OpenCV圖像輪廓提取的實(shí)現(xiàn)

    本文主要介紹了OpenCV圖像輪廓提取的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

灵璧县| 上林县| 朝阳区| 德惠市| 南和县| 莱西市| 嘉定区| 进贤县| 佛坪县| 光泽县| 天全县| 东乌珠穆沁旗| 惠来县| 杨浦区| 张北县| 天津市| 巴青县| 江津市| 崇仁县| 沾化县| 顺平县| 东方市| 安新县| 宁明县| 冷水江市| 滨州市| 东港市| 册亨县| 丰城市| 兴宁市| 疏附县| 景泰县| 万盛区| 岳阳县| 海安县| 紫金县| 和林格尔县| 邢台县| 江山市| 福海县| 朝阳县|