【C】940/bit1-2初识C语言

【参考课程:B站  BV1cq4y1U7sg  BV1Vm4y1r7jY】

目录

1.选择语句(if语句)

2.循环语句(While语句)

3.函数

4.数组

5.操作符

算数操作符

移位操作符

单目操作符

条件操作符/三目操作符

逗号表达式

*补充-操作符详解

6.关键字

#defind 定义常量和宏

7.指针

内存--空间→编号管理

指针变量

指针变量的大小

8.结构体


1.选择语句(if语句)

#define _CRT_SECURE_NO_WARNINGS 1   //避免scanf函数报错
#include<stdio.h>

int main()
{
	printf("要好好学习吗(1/0)?\n");
	int input=0;     //用于储存后续输入的值
	scanf("%d",&input);

	if (input == 1)
		printf("牛气冲天\n");    //如果分支下有多行代码,则需要用{}括起来
	else
		printf("烤地瓜\n");

	return 0;
 }

2.循环语句(While语句)

#include<stdio.h>
int main()
{
	int line = 0;

	while(line < 30000)
	{
		printf("写第%d行代码\n", line);
		line++;    //自增运算
	}
	if (line == 30000)
		printf("牛气冲天\n");

	return 0;
}

*自增运算“++”:分为前缀自增后缀自增,其效果均为自身变量值+1

   前缀自增例如“a=5;b=++a;”,则运行结果是“a=6,b=6”。

   后缀自增例如“a=5;b=a++;”,则运行结果是“a=6,b=5”。

运行结果:

3.函数

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//主函数程序
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);

	int c = ADD(a, b);         //可直接使用定义的函数
	printf("和为:%d", c);

	return 0;
}

//定义ADD函数
//函数类型 函数名(函数参数) //函数类型由返回值决定
int ADD(int num1,int num2)
{
	int sum = 0;
	sum = num1 + num2;

	return sum;         //函数ADD的返回值
}

4.数组

数组:一组相同类型的元素的集合,一个数组最多放10个元素。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
//创建数组
	//数组储存的元素类型 数组名称[储存元素个数]={元素,元素,...}
	int arr1[5] = { 1,2,3,4,5 };    //元素由,分隔
	//不完全初始化,剩余位默认填充0//vs2022填充(null)
	char arr2[5] = { 'a','b','c' };   

//访问数组--通过下标访问
	//数组元素从左到右下标依次为0\1\2\3\4\5...
	//printf("占位符",数组名[元素下标]);
	printf("%d\n", arr1[0]);    //输出1
	//输出多个元素可通过循环语句实现
	int i = 0;
	while (i < 3)       //输出前三个元素:123
	{
		printf("%d", arr1[i]);
		i++;
	}
		
	return 0;
}

5.操作符

算数操作符

#include<stdio.h>
int main()
{
//算数操作符:+、-、*、/、%(取模\取余)
	//对除法的特别说明:
	int a = 9 / 2;
	printf("%d\n", a);  //执行整数除法//输出4
	float b = 9 / 2;
	printf("%f\n", b);  //执行整数除法//输出4.000000
	float c = 9.0 / 2;
	printf("%f\n", c);  //输出4.500000
	//除号两端都是整数--执行整数除法;除号两端有一个数是小数即执行小数除法
	int d = 9.0 / 2;
	printf("%d\n", d);  //执行小数除法,但输出为%d-整型//输出4

	//取余\取模--%
	int e = 9 % 2;
	printf("%d\n", e);  //9除2,商4余1//输出1

	return 0;

移位操作符

#include<stdio.h>
int main()
{
//左移操作符<<   //移动的是2进制位
	 //int占4byte,即4*8=32bit
	int a = 2;  //此时a的2进制应打印为32比特位即:00000000000000000000000000000010
	int b = a << 1;//把a的2进制位向左移动1位,即:00000000000000000000000000000100
	printf("%d\n", b);  //转化输出十进制//输出4
//右移操作符<<//把2进制位向右移动1位

	return 0;
}

单目操作符

#include<stdio.h>
int main()
{
//前置++  //先++,后赋值
	int a = 10;
	int b = ++a;   
	printf("%d\n", a);   //先++→a+1=11//输出11
	printf("%d\n", b);   //后使用→b=a=11//输出11

//后置++  //先赋值,后++
	int c = 10;
	int d = c++;   
	printf("%d\n", d);   //先赋值→d=c=10 //输出10
	printf("%d\n", c);   //后++→c+1=11 //输出11

	return 0;
}
#include<stdio.h>
int main()
{
//强制类型转换
	int a = (int)3.14;  //把浮点型3.14强制转换为整型
	printf("%d", a);

	return 0;
}

条件操作符/三目操作符

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
//条件操作符  //可用于简化选择语句
	//表达式1 ? 表达式2 : 表达式3
	//1成立→运行2
	//1不成立→运行3
	int a = 0;
	printf("是否要好好学习?(1/0)\n");
	scanf("%d", &a);
	a == 1 ? printf("牛气冲天\n") : printf("烤地瓜\n");

	return 0;
}

逗号表达式

#include<stdio.h>
int main()
{
	int a = 1; int b = 2; int c = 0;
	int d = (a++, c = a + 3, b = a + c);
	         //(逗号表达式//从左向右依次计算)//整个表达式结果为最后一个表达式结果
	printf("%d\n", d);  //输出最后一个表达式结果 //输出7
	return 0;
}

*补充-操作符详解

6.关键字

//C语言提供,不能自己创建

//变量名不能是关键字

1、基本数据类型: signed unsigned char int float double short long void
2、构造数据类型: struct union enum
3、数据存储类别: auto static extern register
4、数据优化: const volatile
5、9条基本语句: if else switch case break default while do for return continue goto
6、其它: typedef sizeof
————————————————
版权声明:本文为CSDN博主「星河不见星月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

#defind 定义常量和宏

//define定义常量
#define MAX 1000     
//define定义宏
#define ADD(X,Y) X+Y  
#define ADDc(X,Y) ((X)+(Y))  
//注意定义宏时应该把X、Y当作表达式来考虑,使用()来保证它们的完整性
#include<stdio.h>
int main()
{
	//define定义常量
	printf("%d\n", MAX);  //输出定义常量1000

	//#define定义的宏在表达式中直接替换
	printf("%d\n", ADD(2, 3));      //2+3//输出5
	printf("%d\n", 4*ADD(2, 3));   //4*2+3//输出11
	printf("%d\n", 4 * ADD(2 + 1, 3 + 1));    //4*2+1+3+1//输出13

	printf("%d\n", 4 * ADDc(2, 3));   //4*(2+3)//输出20
	printf("%d\n", 4 * ADDc(2+1, 3+1));   //4*((2+1)+(3+1))//输出28

	return 0;
}

7.指针

内存--空间→编号管理

1.内存如何编号

32位--32根地址线--物理线--通电(1/0)

64位--64根地址线--物理线--通电(1/0)

....

--------------以32位为例--------------

电信号转换为数字信号--0/1构成的2进制序列:  //2³²个序列--2³²个编号

00000000000000000000000000000000   →编号0→将编号称为内存单元的地址

00000000000000000000000000000001   →编号1

00000000000000000000000000000010   →编号2

...

2.一个内存单元是多大空间?

一个内存单元==1 byte

∴32位≈4GB

指针变量

//指针就是地址

#include<stdio.h>
int main()
{
	int a = 10;  //a在空间分配空间--4byte
//打印地址
	      //%p--专门用于打印地址   //&--取地址操作符
	printf("%p\n", & a);//&a--取a的地址--a占4个连续地址→取地址输出a的第一个地址
//存放地址
	int*pa = &a;  //用于存放地址,在C语言中是【指针变量】
	//*--说明pa是指针变量//int--说明pa指向的对象是int类型

//举一反三:
	char ch = 'w';
	char* pc = &ch;

	return 0;
}
#include<stdio.h>
int main()
{
	int a = 10;  
	int* pa = &a;  
//通过地址修改a:
	*pa = 20;  //*--解引用操作符
	//通过pa存放的地址,找到地址里存放的a
	printf("%d\n", a);     //输出a//输出20
	printf("%d\n", *pa);  //输出存放在地址pa里的内容(a)//输出20
	return 0;
}

指针变量的大小

#include<stdio.h>
int main()
{
	printf("%lld\n", sizeof(char*));
	printf("%lld\n", sizeof(short*));
	printf("%lld\n", sizeof(int*));
	printf("%lld\n", sizeof(long*));
	printf("%lld\n", sizeof(long long*));
	printf("%lld\n", sizeof(float*));
	printf("%lld\n", sizeof(double*));
    //均输出8(64位)
	return 0;
}

//指针大小相同--指针大小取决于地址储存需要多大空间

32位   32bit--4byte

64位   64bit--8byte

8.结构体

//用于描述复杂对象

#include<stdio.h>
//结构体可以让C语言创建新的类型出来
//创建一个学生
struct Stu   //这个结构体命名为Stu
{
	char name[20];
	int age;
	double score;     //name\age\score为结构体的成员变量
};

int main()
{
	struct Stu s = { "张三" ,20,95.5};  //创建一个Stu结构体的变量
	printf("1:%s,%d,%lf\n", s.name, s.age, s.score);  //输出 1:张三,20,95.500000
	                    //结构体.成员变量名--找到成员  //.操作符
						
//使用指针,将变量s的地址储存在ps中:
	struct Stu* ps = &s;  //struct Stu-表示s的变量类型为结构体  //*-表示ps为指针变量
//通过指针变量从地址输出指针函数s:
	printf("2:%s,%d,%lf\n", (*ps).name, (*ps).age, (*ps).score);  //输出 2:张三,20,95.500000
	//另一种写法:使用 -> 操作符 //结构体指针->成员变量名
	printf("3:%s,%d,%lf\n", ps->name, ps->age, ps->score);  //输出 3:张三,20,95.500000

	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值