小白初学C语言笔记

本文介绍了C语言的基础知识,包括main函数作为程序入口,数据类型如int、float、double等,以及变量的局部和全局作用域。还讲解了指针、结构体的概念,输入输出函数如printf和scanf,以及控制语句如if和switch。此外,提到了常量、字符串和内存存储方式。
摘要由CSDN通过智能技术生成

初识C语言

main 主函数,程序入口,有且只有一个。

printf打印结果。

return 返回。

int整型的意思。

main函数前int表示main函数调用一个整型值。

void main已过时。

include 包含的意思

std -标准 standard input output

数据类型

char:字符数据类型

short:短整型

int:整型

long:长整型

long long:更长的整型

float:单精度浮点型

double:双精度浮点型

%c表示打印字符格式的数据

%d表示打印整型十进制数据

%f表示打印浮点型数据-打印小数-

%p以地址的形式打印

%x打印十六进制数据

字节:计算机中的单位

bit-比特位-:一个比特位可以存储一个1一个0

byte-字节-:一个字节可以存储8个比特位

kb:1kb=1024byte

mb:1mb=1024kb

gb:1gb=1024mb

tb:1tb=1024gb

pb:1pb=1024tb

char存储1个字节

short存储2个字节

int存储4个字节

long存储4个字节

long long存储8个字节

float存储4个字节

double存储8个字节

合理使用数据类型节省使用空间

变量

全局变量-定义在代码块({})之外的变量

局部变量-定义在代码块({})内部

局部变量与全局变量命名相同时优先使用局部变量,建议不要相同,相同时容易存在BUG

输入数据使用输入函数scanf

&取地址符号

C语言语法规定,变量要定义在当前代码块最前面

变量有作用域和生命周期

作用域(scope),程序设计概念,通常来说,一段代码所用到的名字并不总是有效的,限定这个名字的可用性的代码范围就是这个名字的作用域

生命周期,变量的生命周期是变量的创建到变量的销毁之间的一个时间段

常量

1、const:常属性

2、enum:枚举关键

3、可列举出来的常量称为枚举常量

4、字面常量

字符串:

'\0'字符串的结束标志

'\0'=0

strlen:string length-计算字符串长度

转义字符

转变原来的意思

/转变转义字符为原来的意思

C语言标准规定

sizeof(long)>=sizeof(int)

sizeof (arr)/sizeof (arr[0]) 计算数组大小 单位是字节

#include <stdio.h>
int main()
{
  int arr[]={1,2,3,4,5,6,7,8,9};
  int num=0;
  num=sizeof(arr)/sizeof(arr[0]);
  printf("arr数组大小为 %d",num);
  return 0;
}

extern 声明外部符号

system 专门执行系统命令的函数库

strcmp 判断函数

~ 按位取反:

整型在内存中存储的时候,存储的是二进制的补码

原码取反得到反码,反码减一得到补码

printf打印的是二进制的原码

#include <stdio.h>
int main()
{
  int a =0;//4个字节32个bit位,整型在内存中存储的时候,存储的是二进制的补码
  int b=~a;//先取反再计算
  //11111111111111111111111111111111补码
  //11111111111111111111111111111110反码
  //10000000000000000000000000000001原码
  printf("%d",b);//打印二进制的原码
  return 0;
}

后置++:a++//先赋值,再自加

前置++:++a//先自加,再赋值

(类型)强制类型转换

&& 逻辑与

|| 逻辑或

exp1?exp2:exp3 如果exp1为真则结果为exp2

如果exp1为假则结果为exp3

#include <stdio.h>
int main()
{
  int a=10;
  int b=2;
  int max=0;
  max=(a>b?a:b);
  printf("max=%d",max);
  return 0;
}

typedef 定义类型 类型重定义

static 修饰局部变量时,延长生命周期。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void test()
{
    static int a = 1;
    a++;
    printf("a=%d\n", a);//不加static输出5个2
                        //加了static输出23456
}
int main()
{
    int i = 0;
    while (i < 5)
    {
        test();
        i++;
    }
    return 0;
}

static 修饰全局变量时,改变变量的作用域。让静态的全局变量只能作用在自己所在的源文件内部使用,不可用exturn(声明外部符号)使用。

static 修饰函数时改变了函数的连接属性,外部连接属性变成了内部连接属性

#define MAX 100定义标识符常量(语法规定中间不加=号)

#define 可以定义宏

指针
#include <stdio.h>
int main()
{
    int a = 10;
    int* p = &a;//取地址,将a的地址存放到p
                 //有一种变量是用来存放地址的    指针变量
    printf("%p\n", &a);//a的地址
    printf("%p\n", p);//p的地址应当和a的地址相同
    *p=20;//*   解引用操作符
    printf("%d\n", a);//输出为20
    return 0;
}

*解引用操作符/间接访问操作符,*放在指针变量p前,指向a,此时*p赋值就是给a的赋值。

int*代表指针变量的类型为整型,*单独放在变量前代表变量为指针变量。

struct 结构体关键字:

#include <stdio.h>
//创建一个结构体类型
struct book
{   
    char name[20];//书名字例如:安徒生童话,格林童话等等
    short price;//书的价格,55
};
int main()
{   //利用结构体类型创建一个该类型的结构体变量
    struct book b1 = { "安徒生童话",50 };
    struct book* pb = &b1;//创建结构体类型的指针
    printf("书名:%s\n", pb->name);//->操作符应用于指针,可以由指针找到结构体成员
    printf("价格:%d元\n", pb->price);
    printf("书名:%s\n", b1.name);//.操作符应用于结构体变量,可以找到结构体成员
    printf("价格:%d元\n",b1.price);
    b1.price = 20;//定义的结构体变量是可以修改的,比如书的价格由50变成了20
    printf("价格:%d元",b1.price);
    return 0;
}

->操作符应用于指针,可以由指针找到结构体成员

.操作符应用于结构体变量,可以找到结构体成员

strcpy string copy字符串拷贝,使用时需要用上string.h这个函数库

分支语句和循环语句

C语言中由一个;号隔开的就是一条语句。

if语句结构

#include <stdio.h>
int main()
{
    int age = 10;
    if (age < 18)
        printf("未成年\n");
    else
        printf("成年\n");
    return 0;
}

如果出现多个if和else,else与离的最近的未匹配的if进行匹配。

switch语句

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch (day)
    {
    case 1:
     
    case 2:
        
    case 3:
        
    case 4:
        
    case 5:
        printf("工作日\n");
        break;
    case 6:
        printf("休息日\n");
        break;
    case 7:
        printf("休息日\n");
        break;
        default:
           printf("输入错误\n");     
    }
    return 0;
}

case表达式是常量表达式

default 默认项,当case语句条件都不满足时调到default项,可以出现在Switch语句内的任意地方,一个case语句只能出现一个default语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值