C语言笔记

C语言笔记,第1张

#include 
int main()
{
    int a,b;
    scanf("%d,%d",&a,&b);//输入时是按这个的顺序
    printf("a=%d,b=%d,a+b=%d",a,b,a+b);
}

C语言关键字
autoconstdoublefloatintshortstructunsiged
breakcontinueelseforlongsignedswitchvoid
chardoexternifreturnstaticunionwhile
casedefaultenumgotoregistersizeoftypedefvolatile

标识符:字母、数字(不能开头)、下划线

进制转化

二进制(计算机识别)

八进制 0

十进制

十六进制 0x(观察内存)x86架构是小端架构,低位在前,高位在后

1位 1bit 存储0或1

1字节 1byte=8bit

1kb=1024byte

int i占用4个字节

float f占用4个字节空间

char c 一个字符占用1个字节

#include 

 int main()
 {
    float f=1.234;//3e3-3000 3e-3-0.003
    printf("%f\n",f);//%f就是以浮点形式输出对应数据
    char c='a';//单引号中只能有一个字符 定义一个c赋值a
    printf("%c",c);//c也可以写成97
    printf("%d",c);//数据结果为97
 }

 大小写转换A+32=a

#include 

 int main()
 {
    char c='a';//如何将a变成A
    c=c-32;
    printf("%c\n",c);//以字符形式
    printf("%d\n",c);//以整数形式
 }

"a"字符串型常量 ‘a’字符型常量 \0结束字符串

#include 

 int main()//混合运算
 {
    int i=5;
    float j=i/2;//j=2.000000
    float k=(float)i/2;//()强制转换,k输出结果2.500000
 }
数据的输入输出函数

scanf读取的是标准输入

printf输出到黑窗口(控制台)输出到了标准输出

# include

int scanf(const char *format,...);...是可变参数,参数数目与format中的%的数目保持一致

%f一个浮点苏
%d一个十进制整数
%c一个单一的字符

%d %c %f不限制数目

#include 
//缓冲区为空的时候,scanf才会阻塞
 int main()
 {
    int i;
    char c;
    scanf("%d",&i);//当你输入10时不会阻塞因为后面有个\n=10
    printf("i=%d\n",i);
    scanf("%c",&c);
    printf("c=%c",c);
 }//%d,%f 会忽略\n
#include 
//判断闰年
 int main()
 {
    int year;
    scanf("%d",&year);
    if(year%400==0||year/4==0&&year/100!=0)
    {
        printf("yes\n");
    }
    else{
        printf("no\n");
    }
 }
scanf的循环读取

发生错误时返回EOF

什么是EOF直接输入EOF按着Ctrl,左键点,EOF就是-1

#include 
///清空缓冲区,vs2012 fflush(stdin)
//stdin是标准输入
//现在用rewind(stdin)清空标准输入缓冲区
 int main(){
    int i,ret;
    while(rewind(stdin),(ret=scanf("%d",&i))!=EOF)//while是实现循环,后面要有一个小括号
    {
          printf("i=%d\n",i);
    }
    return 0;
 }

行首按三次Ctrl+z时会出错

#include 
//循环转换字符
 int main(){
   char c;
   while(scanf("%c",&c)!=EOF){
    if(c!='\n'){
        printf("%c",c=c-32);
    }
    else{
        printf("\n");
    }
   }
 }

这里就不适合用rewind(stdin)

#include 
//一个scanf读多种类型数据
 int main(){
    int i;
    char c;
    float f;
    int ret;//调试看读取了几个
    ret=scanf("%d %c%f",&i,&c,&f);//每次读取字符前加一个空格就行
    printf("i=%d,c=%c,f=%f",i,c,f);//不能出来没有空格
    return 0;
 }
  
printf函数的使用
#include 
\\printf控制输出格式
 int main(){

    printf("name=%s,age=%d,sex=%c,score=%4.1f\n","heheng",21,'m',98.5);\\结果出来会有98.500000改成%4.1f小数点后与一位有四位数
 //%10s占10个字符默认靠右,加负号时靠左
 }
#include 

int main()
{
    int a = 4+5*2-6/3+11%4;  //4+10-2+3
    printf("%d\n",a);
    scanf("%d",&a);
    printf("a=%d\n",a);//如果输入1234如何输出4321
    while (a!=0)
    {
        printf("%d",a%10);
        a=a/10;
    }
    return 0;
}
C语言没有布尔模型(认为一切非0的值都为真)

算数>关系>逻辑

#include 
//关系运算符不能并写,逻辑运算符
int main()
{
 printf("%d\n",5>3);//1
 printf("%d\n",5<3);//0
//判断两个浮点数是否相似(内存中相似存储)
float f=234.56;//判断浮点数是否等于某值(相似)
if(f-234.56>-0.0001&&f-234.56<0.0001){
    printf("yes\n");
}
else{
    printf("no\n");//if(f==234.56)不相似
}
}

赋值运算符左边必须是变量不能加上数

#include 
//++i,--i直接正常运算即可,i++,i--拆成两步
int main()
{
   int i=-1;
   int j;
   j=i++>-1;//分为两步j=i>-1;i++
   printf("i=%d,j=%d\n",i,j);
   printf("i占的字符数%d\n",sizeof(i));
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1498431.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-25
下一篇2022-06-25

发表评论

登录后才能评论

评论列表(0条)

    保存