Ⅰ %n在c語言中表示什麼含義
%n與其他格式說明符號不同。%n不向printf傳遞格式化信息,而是令printf把自己到該點已打出的字元總數放到相應變元指向的整形變數中。因此%n對於的變元必須是整形指針。
對printf調用返回之後,%n對於變元指向的變數中將包含有一個整數值,表示出現%n時已經由該次printf調用輸出的字元數。
printf("this%n is a test\n",&count);//調用後count為4
Ⅱ c語言變數基本類型有哪些
c語言的變數有三種類型:char,int,float,double
其中char為字元類型的變數是八位的,最前一位作為符號位,後面七位作為數據位.它的存儲范圍在-128到127之間.
int整數類型的變數是16位的,最前一位為符號位,後面的15位作為數據位.它的存儲范圍在-215到215-1.也就是-32768到32767.它不包擴小數點以後的數,在一般編譯器中給int類型賦予帶有小數的數.編譯器會自動去掉小數點後面的數保留整數部分.
float為浮點數類型.首先要說明的是浮點數有兩部分組成,第一部分是指數,也就是多少次冪嘛.第二部分是由尾數組成也就是一個數科學表示發之後除去冪那部分剩下的(呵呵!!!)如1.33333.那麼c中的浮點數就有三部分.32位的浮點數第一位就是第一部分它決定數的符號.第二部分是八位的指數.第三部分是23位的尾數.所以浮點數具有6到7位的存儲精確度.范圍為3.4e-38到3.4e+38的數值.注:3.1415926e+7表示3.1415926.0.在給浮點數賦值的時候可以採用如下方法.123.45和1.2345e2是等價的.
double為雙精度型變數.c編譯器通常用64位來存儲雙精度性變數.它的精確度能夠達到14到15位.64位中第一位是符號位.後面的11位是指數位.最後的52位是尾數.它的范圍是-1.7e-308到1.7e+308.
類型標識符:unsigned,short,register,long和signed.
其中unsigned提示編譯器不要保留符號位,這樣可以擴大數據類型正數的范圍.比如unsigned int的范圍就變位0到65535了.
short類型用在有的編譯器不能給太大的存儲范圍,需要給一個比較低的溢出界限.比如有的編譯器就用的是32位來存儲int類型.用short來標識它可以保證int是用16位來標識的.
register表示一個變數可能會用得很頻繁.需要很快得存取速度所以指定的把它存到寄存器當中.
long表示不希望用16位來存儲整形變數時可以用long指定它用32位來存儲可以得到更大得表示範圍.
當然還有long unsigned int 這樣得類型.
用戶自定義數據類型
用戶可以使用typedef來自己定義自己需要得數據類型.如下例:
typedef unsigned long int myint;
myint num1;
這樣num1就是unsigned long int類型的了.
Ⅲ c語言,定義一個函數,返回其整數變元的字元串表示,例如如果這個變元是-225,函數就返回「-225」,有圖
#include<stdio.h>
#include<stdlib.h>
char*shu(longa,char*q){
inti=0,j,temp;
longb=a;
if(a<0)a=-a;
while(a){
*(q+i++)=a%10+'0';
a/=10;
}
if(b<0)q[i++]='-';
q[i]='