LinuxC 数据结构、控制变量

变量
变量类型决定着占用内存区的长度,变量名与该起始地址对应。
变量类型所占内存空间大小
char :1个字节
short int :2个字节
int :4个字节
unsigned int :4个字节
float :4个字节
double: 8个字节
long :4
long long :8个字节
unsigned long :4个字节
char * :4个字节
32位系统下所有类型的指针变量都是4个字节
64位系统下所有类型的指针变量都是8个字节

关于bool型:
C++中才有,使用时要引用头文件《stdbool.h》

printf()格式化参数
%d 按十进制整型数据的实际长度输出
%ld 输出长整型数据
%md m为指定的输出字段宽度。如果数据的位数小于m,则左端补上空格,若大于m,则以实际位数输出
%u 输出无符号整型。
%c 输出一个字符
%f 输出实数,包括单精度和双精度,以小数形式输出。不指定字段宽度,由系统自行指定,整数部分全部输出,小数部分输出6位,超过6位四舍五入
%.mf 输出实数时小数点后保留M位,注意m前面有“.”
%o 以八进制输出,
%s 输出字符串
%x 以十六进制输出整数,如果是小写x,输出字母就是小写的,如果是大写的X,输出字母就是大写的。加上#,九一标准的十六进制形式输出。

sizeof()
测量类型所占长度!注意区分和strlen()的区别

static
修饰局部变量:局部变量一般存在与栈中,函数运行结束,栈内存回收释放。如果用static修饰的话,该变量便存放于静态数据区,其生命周期一直保持到程序结束。

extern
表示当前的变量或函数不是在本源文件中定义的,它是外部变量或外部函数‘

常量
#define PI 3.14
const int MAX_SIZE = 5;

运算符优先级
百度

位运算符
C中6种运算符: &与 ,|或, ^ 异或 ,~取反,<<左移 , >>右移
!!!!

If语句—while—do-while—for—switch
基础语法 省略

short的问题
scanf中应该用%hd接受。

异或运算
给出一个非空整数数组除某一个元素之出现一次以外,其余元素均出现两次 找出只出现一次的元素
int singleNumber(int* nums,int size){
int result =0 ;
for(int i=0;i<size;i++){
result ^=nums[i];
}
return result;
}
日历

#include <stdio.h>
#include <stdlib.h>
//判断是否为润年
int isRn(int year){
	return (year%4==0&&year%100!=0)||year%400==0;
}
//得到某年某月多少天
int getMouthDay(int year,int mouth){
	int MouthDay = 31;
	if(mouth==2){
		MouthDay=(isRn(year)? 29:28);
	}else if(mouth==4||mouth==6||mouth==9||mouth==11){
		MouthDay=30;
	}
	return MouthDay;
}
//得到距离1900年1月1日中间有几天
int getYearDay(int year,int mouth){
	 int Day = 0;
	 for(int i=1900;i<year;i++){
		 Day += (isRn(i) ? 366:365);
	 }
	 for(int j=1;j< mouth;j++){
		 Day += getMouthDay(year,j);
	 }
	 return Day;
}
//显示日历
void show(int year,int mouth){
	int mouthDay=getMouthDay(year,mouth);
	int space = (getYearDay(year,mouth))%7;
	printf("------%d--%d-------\n",year,mouth);
	printf("mon\ttue\twed\tthu\tfri\tsat\tsun\n");
	for(int i=0;i<space;i++){
		printf("\t");
	}
	for(int i=1;i<=mouthDay;i++){
		printf("%d\t",i);
		if((i+space)%7==0){
			printf("\n");
		}
	}
}
int main(void) {
	show(2020,2);
	return EXIT_SUCCESS;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值