B站鹏哥C语言

B站鹏哥C语言

乱码

https://www.cnblogs.com/Sayuw/p/16187712.html

键盘录入:scanf()

#define _CRT_SECURE_NO_WARNINGS 1

打印:printf()

#include <stdio.h>

hello world

%s - 打印字符串

%d - 打印整型

%c - 打印字符

%f - 打印浮点数

%p - 以地址的形式打印

%x - 打印16进制数字

%lf - 打印double

#include<stdio.h>
int main() {
	printf("hello world\n你好");
    char a = 'C';
	printf("%c\n", a);//打印字符格式数据
	int b = 10;
	printf("%d",b);//打印整型10进制数据
	return 0;
}

键盘录入

#define _CRT_SECURE_NO_WARNINGS 1

scanf(类型,对应得变量)对应变量前面得加&

    #define _CRT_SECURE_NO_WARNINGS 1//scanf键盘录入
    #include <stdio.h>//printf
    
    int main() {
        int num1 = 0;
        int num2 = 0;
        int sum = 0;
        scanf("%d%d",&num1,&num2);//不要加换行符
        sum = num1 + num2;
        printf("sum = %d\n",sum);
        return 0;

    }

变量

c语言任意一个变量在整个项目中都能够使用,在a文件里面定义一个变量,在b文件中也能够使用,但是要在类型前面加上extern

常量

	//1.字面常量	
	10;
	
	//2.const - 常属性,使变量成为常变量,但本质上还是变量,创建数组时不可以使用常变量
	const int a = 10;//常变量,值不可变
	
	//3.#define 定义的标识符常量
	#define MAX 10
	//4.枚举常量,一一列举
    enum sex
    {
        boy,
        girl,
        no
    };
	
    int main() 
    {
        enum sex s = boy;

        return 0;
    }

字符串

​ C语言中没有字符串这种数据类型,可以通过char型数组来替代;

​ C语言中,字符串一定是一个char型数组,但char型数组未必是字符串;

​ 在C语言的char型数组中,数字0(和字符‘\0’等价)结尾的char数组就是一个字符串,但如果char型数组没有以数字0结尾,那么就不是一个字符串,只是普通 字符数组,所以字符串是一种特殊的char的数组。

正确写法:

char arr[] = { 'a','b','c','\0'}; && { 'a','b','c',0};
char arr[] = "abc";//默认后面添加了一个\0
char arr[24] = {"我是一个英雄"};//如果填写的长度,那么必须与后面长度相同
//打印
printf("%s",arr);//abc

错误写法:

char arr[] = { 'a','b','c',};

计算长度的函数:strlen();

char arr[] = "abc";
printf("%d\n",strlen(arr));

转义字符

\n 换行符
\t 空格
\'转义单引号
\" 转义双引号

语句

if else

	int num = 0;
	printf("请输入1&2:");
	scanf("%d", &num);
	if (num == 1)
	{
		printf("你输入的是1");
	}
	else
	{
		printf("输入的不是1");
	}

while

	int line = 0;
	while (line<=20)
	{
		printf("%d\n",line);
		line++;
	}

数组

格式:与java一样

int arr[] = {1,2,3,4,5};
printf("%d\n",arr[3]);

函数

基本格式:跟java一样就是没有public

:先定义,后使用,必须写在调用前面

int	 funtionname(int x,int b)
{
	int a = 0;
    a = x + b;
    return a;
}

操作符

  • 算数操作符
+ - * / %
  • 常用控制符
++ / --
&			取地址	
sizeof		操作数得类型得长度
~			对一个数的二进制按位取反
++ 
-- 
*			简介访问操作符(接引用操作符)
(类型)	   强制类型转换
//逻辑操作符
&&   逻辑与(有一个为假,即为假)
||   逻辑或(有一个为真,即为真)
  • 源码,反码,补码

源码与反码和补码得相互转换

//111111111111111111111  源码  [ - 1 ] ->  反码 -> 按位取反 - > 补码 
//111111111111111111110
//000000000000000000001
  • 按位取反

0换1,1换0

111111111111110

000000000000001

int a = 10;
int b = ~a;
printf("%d",b);//-1
  • ++ , –
    int a = 10;
    int b = a++;//先使用再自增1 ++a:先自增1再使用
    printf("a=%d\nb=%d",a,b);//a=11  b=10
    int a =10;
    int b = a--;//先使用再自减1 --a:先自减1再使用
    printf("a=%d\nb=%d",a,b);//a=9  b=10;
  • 表达式
三元表达式
exp ? exp2:exp3
逗号表达式
exp1,exp2,exp3, ..expn
下标引用,函数调用和解构成员
[] () . ->

2进制 - > 10进制?

2进制数+1:当2进制+1或-1时,最后一位如果是0,说明这位为空,+1为1,如果为1,说明这二进制位,已满,+1则化1为0再后面加一个0
//auto:自动变量,每个局部变量前面都有一个auto,因为都有,所以忽略不写
    
int a = 10; == auto int a = 10;
//计算机存储
//寄存器
//高速缓存
//内存
//硬盘
//速度依次下降

register int a = 10;//建议把a定义寄存器变量,因为寄存器数量有限,所以,是否定义为寄存器变量,编译时,会自己决定

signed int a = 10;   //定义变量有符号,啊就是10
unsigned int a = -10; //定义变量忽略符号,-10对他来说也是10

//typedef - 类型定义 - 类型重定义,把int改名字,就是给int起个别名/小名
typedef int u_int;
u_int a = 10;
printf("a=%d", a );//a=10;

//extern 可以引入别的源文件里的变量 
int a = 10//a.c
extern int  a;//b.c
printf("%d",a);
Static
变量的两点属性,生命周期,和作用域
1.static修饰变量
	static 修饰局部变量,局部变量的生命周期变长,
	static 修饰全局变量,改变了变量的作用域 - 让静态的全局变量只能在自己所在的源文件内部使用
2.static修饰函数
	改变了函数的作用域-不准确
#define定义常量和宏
//不需要 类型 和 等号
#define a 10 
宏得定义

类似于函数

//三元操作符
#define max(x,y) (x>y?x:y)

//作用等同于宏
int max(int x, inty)
{
	int a = x > y ? x : y
	return a;
}

指针

指针实例

&a = > 取a的地址

int a = 10 就是取一块内存[内存有自己的编号],内存里面存放10[编号对应的就是10这个数],int * p = &a就是把用p来代替*&a**【p = &a】, * p = 20的意思是拿个20去找p的地址,并把里面的值换成20

在32位系统中一个指针的大小位4个byte

在64位系统中一个指针的大小位8个byte

int a = 10;
int * p = &a;// p为一个整型指针变量,指针的名称叫p,类型为int * 
	printf("%p\n",&a);//000000000061FE14
	printf("%p\n",p);//000000000061FE14
	printf("%d\n",a);//10
* p = 20;// * - 解引用操作符
	printf("%d\n",a);//20

printf("%d\n",p);//8个字节

在32位系统中一个指针的大小位4个byte

在64位系统中一个指针的大小位8个byte

int a = 10;
int * p = &a;// p为一个整型指针变量,指针的名称叫p,类型为int * 
	printf("%p\n",&a);//000000000061FE14
	printf("%p\n",p);//000000000061FE14
	printf("%d\n",a);//10
* p = 20;// * - 解引用操作符
	printf("%d\n",a);//20

printf("%d\n",p);//8个字节
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值