C语言初识1

第一个C语言

#include <stdio.h>
int main() { 
	printf("hello bit\n");    
	printf("he he\n");    
	return 0; } 
   //解释: 
   //main函数是程序的入口   
   //一个工程中main函数有且仅有一个

数据类型

char        //字符数据类型 
short       //短整型 
int         //整形 
long        //长整型 
long long   //更长的整形 
float       //单精度浮点数 
double      //双精度浮点数 
//C语言有没有字符串类型?
  • 为什么出现这么的类型? (为了表达生活中各种值)

  • 每种类型的大小是多少?

    int main(){
    // printf("hello world!\n");
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	return 0;
}

类型的使用:

char ch = "w";
int weight = 120;
int salary = 20000;

变量、常量

不变的值,C语言中用常量来表示,变的值用变量来表示

定义变量的方法

    int age = 20; 
	float weight = 58.5f; 
	char ch = 'y';

变量的分类

  • 局部变量
  • 全局变量
#include <stdio.h>
int global = 2019;//全局变量 
int main() 
{    
	int local = 2018;//局部变量    
	//下面定义的global会不会有问题?    
	int global = 2020;//局部变量    
	printf("global = %d\n", global);    
	return 0; 
}

总结:当局部变量和全局变量同名的时候,局部变量优先使用。

变量的使用

int main(){
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:");
	scanf("%d%d", &num1, &num2);
	sum = num1 + num2;
	printf("sum=%d", sum);
	return 0;
}
变量的作用域和生命周期

作用域:
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。

生命周期:

  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。

常量

C语言中常量分为:

  • 字面常量
  • const修饰的常变量
  • #define定义的标识符常量
  • 枚举常量
#include <stdio.h> 
//举例 
enum Sex 
{    
	MALE,    
	FEMALE,    
	SECRET 
}; 
//括号中的MALE,FEMALE,SECRET是枚举常量

int main() 
{
	3.14;//字面常量    
	1000;//字面常量    
	const float pai = 3.14f;   //const 修饰的常量    
	pai = 5.14;//ok?   
    #define MAX 100            //#define的标识符常量       
	return 0; 
}

字符串+转义字符+注释

字符串
“hello world.\n”

注意:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串 内容。

#include <stdio.h> 
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性) 
int main()
{
	char arr1[] = "hel";
	char arr2[] = { 'h', 'e', 'l' };
	char arr3[] = { 'h', 'e', 'l', '\0' };
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	printf("%s\n", arr3);
	return 0;
}
转义字符
转义字符释义
\?在书写连续多个问号时使用,防止他们被解析成三字母词
\’用于表示字符常量’
\“用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。 如: \130 X
\xdddd表示2个十六进制数字。 如: \x30 0
#include <stdio.h> 
int main() 
{    
//问题1:在屏幕上打印一个单引号',怎么做?   
 //问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?   
  printf("%c\n", '\'');    
  printf("%s\n", "\"");   
  return 0; 
}

//程序输出什么?
 #include <stdio.h>
int main() 
{    
    printf("%d\n", strlen("abcdef"));    // \32被解析成一个转义字符    
    printf("%d\n", strlen("c:\test\328\test.c"));    
    return 0; 
}

选择语句

#include <stdio.h>
int main(){
	int kaoyan = 0;
	printf("你考研吗?(选1 or 0):\n");
	scanf("%d", &kaoyan);
	if (kaoyan == 1){
		printf("祝你2022上岸\n");
	}
	else{
		printf("希望你能拿到一个好offer\n");
	}
	return 0;
}

循环语句

#include <stdio.h>
int main(){
	printf("一个单词要循环背10遍\n");
	int times = 0;
	while (times <= 10){
		times++;
		printf("我要继续背单词!\n");
	}
	if (times > 10){
		printf("我单词背完10遍了哦\n");
	}
	return 0;
}

函数

#include <stido.h>
int main(){
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:");
	scanf("%d%d", &num1, &num2);
	sum = num1 + num2;
	printf("sum=%d\n", sum);
	return 0;
}
写成如下函数:
#include <stdio.h>
int Add(int x, int y){
	int z = x + y;
	return z;
}
int main(){
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:");
	scanf("%d%d", &num1, &num2);
	sum = Add(num1,num2);
	printf("sum=%d\n", sum);
	return 0;
}

数组

数组定义:

int arr[10]={1,2,3,4,5,6,7,8,9,0};

数组使用

#include <stdio.h>
int main(){
	int i = 0;
	int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
	for (i = 0; i < 10; i++){
		printf("%d", arr[i]);
	}
	printf("\n");
	return 0;
}

指针

结构体

struct Stu {
	char name[20];//名字    
	int age;      //年龄    
	char sex[5];  //性别    
	char id[15]; //学号 
};

结构体初始化:

#include<stdio.h>
int main(){
	struct book{
		char name[20];//书名
		float price;//价格
	};
	struct book b = { "C语言", 20.0 };
	//.为结构成员访问操作符
	printf("name:%s\n", b.name);
	printf("prince:%f\n", b.price);
	//->操作符
	struct book *bk = &b;
	printf("name:%s\n", bk->name);
	printf("prince:%f\n", bk->price);
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值