c語言中scanf
Ⅰ c語言中scanf("%d",a)和scanf(%d",&a)在printf("%d",a)中到底有什麼區別
二者的區別是一個是取變數的值,一個是取地址。scanf(%d",&a) 是讀取整型變數a在內存中的地址,而scanf("%d",a)是讀取整型變數a的值。
&是取地址的意思,&a是取出變數a的地址scanf(%d",&a) 就是讀取1個數字,寫入a的地址,scanf("%d",a),是讀取1個數字,寫入地址a,這個a如果是100,就寫到地址100。如果是200,就寫到地址200,顯然,這很危險,萬一a的存儲的值剛剛好是一些指令的地址什麼的,會寫到這個地址修改指令,就運行不下去了,出大錯。printf("%d",a) 就沒什麼了 把變數a的存儲的值輸出然後&是取地址。
拓展資料:
1、在HTML或SGML文檔中,用於指明有字元存在(特殊字元)的默認符號。
2、在電子製表程序中,用於在描述單元格相互關系的公式中插入文本的操作符。
3、英文中代表and,也可讀and。
4、該字元讀音「z'da」。
5、&還有「聯合」的意思。比如「A&B」公司,就是「A」和「B」兩間公司合並起來的。
6、在某些電腦語言,如java中,表示按位進行「與」運算。
7、英文拼寫:ampersand。
8、高級語言中的取地址符,如:「int a=0;int *p;p=&a;」,意為取變數a的地址給指針p。
9、C語言中兩個&&表示「與」運算。如:while(a==9&&b==5) 表示當a等於9且b等於5時,條件成立。
10、Matlab中,&表示「與」運算(對應地,|表示「或」運算),但Matlab較高版本(如:Matlab R2008b)中,也承認&&的寫法。在以上的意義中,以第3和第5項的用法最為普遍。
11、在vfp 資料庫中,&是一個宏代換函數,用內在變數的值來代替&及變數名。
12、在Pascal中,&是八進制整型常量的前綴,如&7表示7 , &17表示15 , &177表示127 。
13、&還被大量引入到藝術創作與設計中。
14、bat中的命令,&之後順序執行多條命令,不管命令是否成功。
15、在Visual Basic中使用命令按鈕時,(&字母)代表將該字母設為快捷鍵。如在命令按鈕的Caption屬性中輸入「確定(&K)」則表示K為「確定」事件的快捷鍵。
16、起標識作用。C++中引用的聲明方法:類型標識符 &引用名=目標變數名,&在此不是求地址運算,而是起標識作用。
資料來源:網路:&
Ⅱ C語言中的scanf輸入問題
這個
,其實scanf裡面的%5d的5應該是沒有意義的,也就是說直接輸入10^20Aa1.5-3.75(這里可以不要空格,減號充當了分隔符),但是10和20之間是必須加上分隔符的,空格或者Tab鍵都可以
輸入是必須讓編譯器能夠正確識別就可以了,不必和答案一般見識,另外,老是在這些格式上糾纏是在浪費自己的青春,花時間學點真功夫吧,比如這個,自己調試一下就知道誰是對的了
Ⅲ c語言中scanf括弧里&什麼意思
在c語言中,scanf("%d%*c", &n);中%d表示讀整數,%*c表示忽略掉一個字元型的輸入項,&n表示對象n在內存中的地址。scanf("%d%*c", &n);整體表示輸入兩個數,並且忽略掉第二個字元型的輸入項,然後將輸入的對象存入n。
在C語言的scanf函數中,格式字元串的一般形式為:%[*][輸入數據寬度][長度]類型(其中有方括弧[]的項為任選項)。不同的格式符類型有不同的功能。
(3)c語言中scanf擴展閱讀
C語言scanf函數的語法規則:
1、語法
#include <stdio.h>
int scanf( const char *format, ... );
類似函數有
int scanf(const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);//定輸入流
int sscanf(const char *str, const char *format, ...);//指定緩存區
2、規則
scanf()函數根據由format(格式)指定的格式從stdin(標准輸入)讀取,並保存數據到其它參數. 它和printf()有點類似. format(格式)字元串由控制字元,空白字元和非空白字元組成. 控制字元以一個%符號開始。
Ⅳ C語言中scanf("%c%*c%c%*c%d",&a,&b,&c)
char a,b;
int c;
scanf("%c%*c%c%*c%d",&a,&b,&c); //%c表示接受一個字元,%*c表示輸入中,忽略一個字元
//如果輸入asbs1
//那麼輸出結果a,b,c對應的為a b 1,其中s,s忽略了
Ⅳ 關於c語言中scanf的問題
scanf後面的%f格式,必須與輸入格式相一致
按您的輸入,中間用逗號,與scanf中%f之間格式不符,結果只接收了第1個變數,後面沒接收,因而是零(有的編譯器會是隨機數),正確寫法:
(1)如果:scanf中%f之間用空格,即:scanf("%f %f %f",&a,&b,&c);應該輸入1 2 3(中間有空格)
(2)如果:scanf中%f之間用逗號,即:scanf("%f,%f,%f",&a,&b,&c);應該輸入1,2,3(中間有,)
但不能沒有分隔符號,您的寫法,要求3個數連續輸入,這樣:人都沒辦法分辨,機器更沒法分了,如:你輸入12.345.67.89,是啥意思?
12.34 5.6 7.89?
12.3 45.6 7.89?
Ⅵ C語言中的scanf是什麼意思
scanf()是C語言中的一個輸入函數。
與printf函數一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數時要加上#include <stdio.h>。(在有一些實現中,printf函數與scanf函數在使用時可以不使用預編譯命令#include <stdio.h>。)
函數 scanf()是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變數之中。scanf() 從標准輸入流stdin中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
(6)c語言中scanf擴展閱讀:
scanf()用法舉例:
用scanf輸入一個整數
#include<stdio.h>
int main(){
int num=0;
printf(「請輸入一個個整數」);
scanf(「%d,&num);
printf(「num是%d 」,num);
scanf(「%*[^ ]」);
scanf(「%*c」);//清空緩沖區
printf(「請輸入一個個整數」);
scanf(「%d,&num);
printf(「num是%d 」,num);
return 0;
}
參考資料來源:網路-scanf
Ⅶ c語言中scanf有什麼作用
C語言中scanf是標准庫函數,主要用來接收用戶輸入的數據。
scanf與printf函數一樣,都被定義在頭文件stdio.h里,因此在使用scanf函數時要加上#include <stdio.h>。它是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變數之中。
函數格式:int scanf(char *format, args, ...);
功 能:從標准輸入設備按format指定格式輸入數據給args所指向的內存單元;
返 回 值 :讀入並賦給args的數據個數。遇文件結束返回EOF,出錯返回0。
(7)c語言中scanf擴展閱讀
基本特性
1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。
2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。
C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
3、代碼級別的跨平台:由於標準的存在,使得幾乎模式同樣的C代碼可以用於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要進行硬體操作的場合,優於其它高級語言。
4、使用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持。
但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。
一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。
Ⅷ C語言中的Scanf的用法
scanf 函數最主要的用法是:
scanf("輸入控制符", 輸入參數);
函數原型:intscanf(constchar*restrictformat,...);
函數 scanf() 是從標准輸入流stdin (標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
(8)c語言中scanf擴展閱讀:
函數的第一個參數是格式字元串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字元串中的格式符一一順次對應。
發展:
使用scanf函數進行輸入,必須指定輸入的數據的類型和格式,不僅繁瑣復雜,而且很容易出錯。C++保留scanf只是為了和C兼容。
以便過去用C語言寫的程序可以在C++的環境下運行。C++的編程人員都願意使用cin進行輸入,很少使用scanf。
但是scanf有一個明顯的優點,速度比cin函數快。