2021-06-11初识C语言(2021.6.5-6.8)


#include <stdio.h>


//(1,2,3常量的分类)

//(复习)
//int main() 
//{
//int num1=0;
//int num2=0;
//int s=0;
//scanf("%d%d",&num1,&num2);
//s=num1+num2;
//printf("s=%d\n",s);
//return 0;
//}


/*(1)
int main()
{
    int num=4;
    //3;字面常量 100; 3.14;//
    
    const int num2=6;//const-常属性->修饰常变量
    printf("%d\n",num);
    printf("%d\n",num2);


return 0;
}*/

/*(2)
#define MAX 10//define定义的标识符常量
int main()
{
    int arr[MAX]={0};
    printf("%d\n",MAX);
    return 0;
}*/


//(3)枚举常量(一一例举)
//性别:男女
//星期:1.2,3,4,5,6,7
//enum->枚举关键
/*enum Sex
{
MALE,
FEMALE
};
int main()
{
    enum Sex s=FEMALE;
    printf("%d\n",MALE);//male默认值为0
    printf("%d\n",FEMALE);//female默认值为1(按先后顺序排列)
    return 0;
}
*/


//(字符串+转义字符+注释)
//字符串类型->由双引号引起的一串字符"abcdef";/"hello bit";/"";(空字符串)


/*int main()
{
    char arr1[] ="abc";//"abc"--'a''b''c''\0'->'\0'是字符串的结束标志(不算内容)
    //char arr2[] ={'a','b','c'};->结果为abc隐bc->原因:结尾没有结束标志->出现随机现象
    //printf("%d\n",strlen(arr2));arr2->长度为随机值
    char arr2[] ={'a','b','c',0};
    printf("%s\n",arr1);
    printf("%s\n",arr2);
    printf("%d\n",strlen(arr1));//strlen->计算字符串长度
return 0;
}*/


//转义字符->转变原来意思->一套转义字符为一个字符
int main()
{
printf("abc\n");//(\n->将n原意转变为换行)
printf("c:\test\32\test.c");//(\t->相当于tab键:水平制表)
printf("c:\\test\\32\\test.c");//(\\->反斜杠防止转义)
return 0;

}

#include <stdio.h>


/*int main()
{
printf("%c\n",'\x61');//\xdd(作为十六进制->转变为十进制对应ASCII表中对应的值)
return 0;
}*/


//选择语句
/*int main()
{
int input =0;
scanf("%d",&input);
printf("加入比特\n");
printf("你要好好学习吗?(1/0)>;");
if (input == 1)
    printf("好工作\n");
else 
    printf("卖红薯\n");
return 0;
}*/


//循环语句(今天学while循环)
/*int main()
{
    int line =0;
    printf("加入比特\n");
while(line<20000)
{
printf("敲一行代码:%d\n",line);
line++;
}
if(line>=20000)
printf("好工作\n");
return 0;
}*/

//函数(创造的方法。例如:Add)
//库函数,自定义函数

/*int Add(int x,int y)
{
    int z=x+y;
    return z;
}//实现加法的函数
int main() 
{
int num1=0;
int num2=0;
int a =100;
int b =200;
int sum=0;
int s=0;
scanf("%d%d",&num1,&num2);
s=num1+num2;
printf("s=%d\n",s);
sum=Add(a,b);
printf("sum=%d\n",sum);
return 0;
}*/


//数组:一组相同类型元素的集合
/*int main() 
{
//int a=1;
//int b=2;
//int c=3;
int arr[10] ={1,2,3,4,5,6,7,8,9,10};//定义一个存放10个整数数字的数组
            //数组中第一个数对应下标为0,第二个为1...最大的位n-1;
            //char ch[20];          float arr2[5];
//printf("%d\n",arr[5]);//[x]->x为下标
int i=0;
while(i<10)
{
printf("%d\n",arr[i]);
i++;
}
return 0;
}*/


//操作符(+,-,*,/(取商),%(取余))
         //移(二进制)位操作符  <<左移  >>右移
/*int main()
{
    int a=1;//整型1占4个字节=32个比特位(00000000000000000000000000000001)
    int b = a<<3;//(00000000000000000000000000000001)向左平移3个二进制位,后面用零补齐(00000000000000000000000000001000)对应十进制8
    printf("%d\n",a);
    printf("%d\n",b);
    return 0;
}*/


//   位操作(二进制)
//&  按位与(有零就是零,全一才是一)
//|  按位或(有一就是一,全零才是零)
//-  按位非

//赋值
/*int main()
{
int a=10;
a=20;
a=a+10;//方法一(复合赋值符)
a+=10;//方法二(等价于方法一)
return 0;
}*/


//单目操作符(!,-,+,&,sizeof())
//双目操作符(对两个数进行操作,单三亦是同理)
//三目操作符
 

#include <stdio.h>

/*//万用
int main()
{
return 0;
}
*/

//(两个数比较大小方法一:不用函数)
/*int main()
{
    int num=19;
    int num2=29;
    if(num>num2)
        printf("较大值为:%d\n",num);
    else
        printf("较大值为:%d\n",num2);
    
    //字符串的结束标志:'\0'->转义0
return 0;
}*/


//(两个数比较大小方法二:使用函数)
/*int Max(int x,int y)
{
if(x>y)
return x;
else
return y;
}
int main()
{
    int num1=10;
    int num2=20;
    int max=0;
    max=Max(num1,num2);
    printf("max=%d\n",max);
return 0;
}*/


/*
int main()
{
    int a=0;//int->4个字节,32bit位
    int b=~a;//~-按(2进制)位取反(b是有符号的整型)
            //00000000000000000000000000000000
            //11111111111111111111111111111111(补码)(补码->反码:减1)
            //11111111111111111111111111111110(反码)(反码->原码:符号位不变,其他位按位取反)
            //10000000000000000000000000000001(原码)(左边第一位为1符号为负值,左边第一位为0符号为正值)
            //负数在内存中存储时,存储的是二进制的补码
    printf("%d\n",b);//(结果为-1 ;原码,反码,补码)(使用时打印的是这个数的原码)
    return 0;
}
*/


/*
int main()
{
    int a=10;
    int b=a++;//后置加加:b先使用10,然后a再自增
    int c=++a;//前置加加:a先加加,c再使用
    printf("a=%d\n b=%d\n c=%d\n",a,b,c);
    return 0;
}
*/

//强制类型转换
/*int main()
{
    int a=(int)3.14//3.14为double类型,转为int可能数据丢失,因此强制转换
return 0;
}*/

/*
int main()
{        //真——非0
         //假——0
         //&&——逻辑与(全真为真)
         //||——逻辑或(有一真为真)
         int a=0;
         int b=5;
         int c=a&&b;
         int d=a||b;
printf("c=%d\nd=%d\n",c,d);
return 0;
}
*/


//条件操作符exp1?exp2:exp3;(三者为三个表达式->当exp1为真时,执行exp2;当exp1为假时,执行exp3)
int main()
{
    int a=100;
    int b=20;
    int max=0;
    max =(a>b?a:b);
    if (a>b)
        max=a;
    else
        max=b;
    printf("max=%d\n",max);
return 0;
}

//逗号表达式
 


#include <stdio.h>

/*
int main()
{
return 0;
}
*/


/*
int main()
{
    register int a=10;//register建议把a定义成寄存器变量
    int b=10;//int定义的变量是有符号的(signed int的缩写)
    unsigned int num=1;//无符号变量(可无视符号)
    //struct ——结构体关键字
    //union——联合体
    //typedef——类型(重)定义
    typeder unsigned int u_int;
    unsigned int num=29;
    u_int num2=22;
return 0;
}
*/

//static修饰局部变量时,局部变量的生命周期变长,出去不被销毁
//static修饰全局变量时,改变了作用域,只能在源文件内部使用
 /*
 void test()
{
   static int a=1;//static——a变为静态的局部变量
   a++;
   printf("a=%d\n",a);//结果为:2,3,4,5,6
}

  int main()

  {
   int i=0;
   while (i<5)
{
   test();
   i++;
}
   return 0;
}
*/

/*
//#define MAX 100
//#define //可以定义宏——带参数
Max(int x,int y)   //函数的定义的方式
{
    if(x>y)
        return x;
    else 
        return y;
}

#define MAX(X,Y) (X>Y?X:Y)//宏的定义方式
   int main()
{
    int a=16;
    int b=23;
    int max=Max(a,b);
    printf("max=%d\n",max);
    return 0;
}
*/


int main()
{
    int a=10;
    int* p=&a;//有一种变量是用来存放地址的——指针变量
    printf("%p\n",&a);//打印出的地址为16进制
    printf("%p\n",p);
    *p=20;//*——解引用:找到p中存放的地址对应的变量,然后可以进行操作
    printf("a=%d\n",a);
return 0;
}

 

#include <stdio.h>

/*
int main()
{
    double d=3.14;
    double* pd=&d;
    *pd=5.2;
    printf("%lf\n",d);
    printf("%d\n",sizeof(pd));//32_4;64_8
return 0;
}
*/


//结构体:我们自己创造出来的类型
//struct 结构体关键字
/*
struct Book//创建一个结构体类型
{
char name[20];//名字:C语言设计
short price;//价格55
};//;不可少

int main()
{
    struct Book b1={"C语言程序设计",55}; 
    //利用利用结构体类型——创建一个该类型的结构体变量
    struct Book* pb=&b1;
    printf("书名:%s\n",b1.name);
    printf("价格:%d元\n",b1.price);
    printf("%s\n",pb->name);//指针在结构体里的应用
    printf("%d\n",pb->price);
    b1.price=15;
    printf("修改后的价格为:%d元\n",b1.price);
    return 0;
}
*/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值