C语言基础入门学习记录2

 常量

#define  为定义的标识符常量

#include <stdio.h>
#define hehe 30
int main()
{
	int a[hehe] = { 0 };
	printf(" % d\n", hehe);

	return 0;
}

const 拥有常量属性-修饰常变量

#include <stdio.h>
int main()
{
	const int a = 15;
	printf("%d\n", a);
	return 0;
}

枚举常量-一一列举

枚举关键 - enum

 列举出来的数据从0开始按序排列:0 1 2

字符串和转义字符

#include <stdio.h>
int main()
{
	char max[] = "in";//数组
	char s[] = {'i','n','\0'};//\0是字符串中的结束标志,它是一个转义字符
	printf("%s\n", max);      //在计算字符长度时不作内容
	printf("%s\n",s);
	printf(" % d\n",strlen(max));//strlen是计算字符串长度的
	return 0;

}

ASCII编码

因为数据在计算机上存储的是二进制数据,所以ascll为表达键盘上128个字符的数据

比如说表达一个空格,一个回车,一个字母

且计算字符的时候\28,\127都为一个字符

 如果不想转义时但要输出\时可以\\多打一个斜杠使转义无效,成为一个普通的字符

 基础循环语句

#include <stdio.h>
int main()
{
	int  实习时间 = 0;
	printf("实习%d\n");
	while (实习时间 < 28)
	{
		printf("努力实习一个月\n",   实习时间);
		实习时间++;
		if (实习时间 >= 28);
	}
			printf("成为实习优秀实习生\n");
	return 0;
}

++意思为实习时间 = 实习时间 + 1 

下图为自定义函数

函数的特点就是简化代码,代码复用         

#include <stdio.h>
int pa(int x, int y) //自定义函数-设计
{
	int z = x + y;
	return 0;
}
int main()
{
	int num1 = 0;
	int num2 = 3;
	int sum = 0;
	int a = 12;
	int b = 48;
	sum = pa(num1, num2);
	sum = pa(a, b);
	sum = pa(2, 3);
	printf("sum = %d\n", sum);
	return 0;


}

数组

如果要输出整个数组可以使用循环语句

int main()
{
	int add[10] = { 1,2,3,4,5,6,7,8,9 ,10 };
//每个数都有一个下标,从0.1.2.3.4.5.6.。。。。
//默认从零开始
	int i = 0;
	while (i < 10)
	{
		printf("%d", add[i]);
		i++;
	}
	return 0;


}

操作符 

算数操作符

+

-

*  乘

/  除

%:  % 左右两边的数必须都为整数   取模,除之后剩下的余数

移位操作符

>> : 右移

<<:  左移

例1:b = 20

图片

位操作符

& (按位与)  | (按位或)  ^(按位异或)

怎么求一个二进制位中1的个数

#include<stdio.h>
int CountOneBit(unsigned int n){//解决负数无法计算问题,这种运算运算的是补码
  int count = 0;
  while(n){//类比十进制中每位数的求法
    if(n%2 == 1)
      count++;
    n/=2;
  }
  return count;
}
int main(){
  int n = 0;
  int num_1 = 0;
  printf("请输入一个数:");
  scanf("%d",&n);
  num_1 = CountOneBit(n);
  printf("%d的二进制序列中有%d个 1",n,num_1);
}

unsigned的作用:

unsigned就是将这个二进制数最高位的符号位变成计数位。下面我们举个例子帮大家理解一下

如果我们输入的是-1

-1%2 == -1

-1/2 = 0

这样输出的count为0

但是我们知道-1的补码是11111111111111111111111111111111

这样我们的代码就局限在正整数

如果加上unsigned 虽然我们输入的是-1 但是程序计算是是按照 unsigned int 的最大值,这样就避免了这个问题

赋值操作符

=

a = b = c

它的意义是将c的值赋给b,再将b的值赋给a。其实这样理解不够准确,其实应该这么写:

a = (b = c)

先将c的值赋给b 然后将这个整体,即b的值赋给a

复合赋值符

+= -= *= \= %= >>= <<= &= |= ^=

单目操作符

  

\-

=

&(取地址)

sizeof(操作数的类型长度)

~ (对一个数的二进制位按位取反)

--  ++(前置,后置)

* (解引用)

(类型)(强制类型转换)

!的应用

应用!与flag来判断情况做出选择

if(flag){

flag为真进入循环;

}

if(!flag){

flag为假进入循环;

}

条件操作符

a > b ? a : b

[] 下标引用操作符

对于数组 arr[5] = {1,2,3,4,5}

我们一般的用法是:

arr[0],arr[1],arr[2]…..其中arr[0]就代表访问数组中第一个元素,arr[1]代表访问第二个以此类推

关系操作符

>

>=

<=

!=

==

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值