我是靠谱客的博主 端庄小蚂蚁,最近开发中收集的这篇文章主要介绍C语言初学1--基础,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C语言基础学习记录
学习视频如下
https://www.bilibili.com/video/BV1q54y1q79w/?spm_id_from=333.999.0.0&vd_source=7442270a1c7e13b4dcbd82e1f0420f8b
P1-P5:初识C语言

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
return 0;
}
 结构体
char int double ..
 人、书... -- 复杂对象
人:名字+身高+年龄+身份证号+...
//
//struct Book
//{
//	char name[20];//C语言程序设计
//	short price; //55
//}; // ; 用于结束类型定义
//
//int main()
//{
//	//利用结构体类型创建一个结构体变量
//	struct Book b1 = {"C语言程序设计", 55};
//	struct Book* pb = &b1;
//
//	printf("书名:%sn", b1.name);
//	printf("价格:%d元n", b1.price);
//	b1.price = 15;
//	printf("甩卖价格:%d元n", b1.price);
//
//	strcpy(b1.name, "C++"); //strcpy-string copy -字符串拷贝-库函数-string.h
//	printf("新书名:%sn", b1.name);
//
//	//利用pb打印书名和价格
//	// . 结构体变量.成员
//	//-> 结构体指针->成员
//	//printf("书名:%sn", (*pb).name);
//	//printf("价格:%d元n", (*pb).price);
//	printf("书名:%sn", pb->name);
//	printf("价格:%d元n", pb->price);
//
//	return 0;
//}
//int main()
//{
//	char ch = 'w';
//	char* pc = &ch;
//	*pc = 'a';
//	printf("%cn",ch);
//	printf("%dn",sizeof(pc)); // 4 -- 当前平台为32位;
//	return 0;
//}
// 指正变量的大小
// 32位平台,指针的大小为4 byte;
// 64位平台,指正的大小为8 byte。
 指针
//int main()
//{
//	int a = 10; // 4个字节
//	int* p = &a; //int* 为指针变量类型,取出a的地址存到p
//	// 有一种变量是用来存放地址的--指正变量
//	printf("%pn",&a);
//	printf("%pn",p);
//
//	// *p; //
* -- 解引用操作符,间接访问操作符,对p进行解引用操作,找到它所指向的对象a 
//	*p = 20; //通过*p找到的a值改为20;
//	printf("%dn",a);
//
//	return 0;
//}
 #define 定义常量和宏
//
 #define MAX 100 //#define 定义标识符常量
 #define 定义宏(带参数的)
//
// 函数的实现
int Max(int x, int y)
{
	int z = (x>y ? x:y);
	return z;
}
 宏的定义方式
//#define MAX(X, Y) (X>Y?X:Y)
//
//int main()
//{
//	// int a = MAX;
//	int a = 10;
//	int b = 20;
//	// 函数方式
//	//int max = Max(a, b);
//	//printf("max = %dn", max);
//	// 宏的方式
//	int max = MAX(a, b);
//	printf("max = %dn", max);
//
//	return 0;
//}
 static 修饰局部变量,局部变量的生命周期边长
 static 修饰全局变量,改变了变量的作用域,静态的全局变量只能在所在的原文件内部使用,出了原文件就无法使用
 static 修饰函数, 也是改变了函数的作用域(不准确的说法),即改变了函数的链接属性,外部链接属性变成了内部链接属性
//
 声明外部函数
//extern int Add(int, int);
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int sum = Add(a, b);
//
//	printf("sum = %dn", sum);
//
//
return 0;
//}
//int main()
//{
//	extern int g_val; // 声明外部符号
//	printf("g_val = %dn", g_val);
//
//
return 0;
//}
//void test()
//{
//	static int a = 1; // 是一个静态的局部变量
//	a++;
//	printf("a = %dn", a); // 2 3 4 5 6
//}
//
//int main()
//{
//	int i = 0;
//	while(i < 5)
//	{
//
test();
//
i++;
//	}	
//	return 0;
//}
//int main()
//{
//	// typedef -类型定义 - 类型重定义
//	typedef unsigned int u_int;
//	unsigned int num = 20;
//	u_int num2 = 20;
//
//	return 0;
//}
// 常见关键字
// auto break case char const continue default do double else enum(枚举) 
// extern(外部变量) float for goto if int long register(寄存器) return short signed(有符号的)
// sizeof static struct switch typedef(类型定义) union(联合体or共用体) unsigned(无符号的) void volatiele while
// & * . ->
//int main()
//{
//	int arr[10] = {0};
//	arr[4]; //[] - 下标引用操作符
//
//	int a = 10;
//	int b = 20;
//	int sum = Add(a, b); //() - 函数调用操作符
//
//	return 0;
//}
// 逗号表达式
// exp1, exp2, exp3, ..., expN
 条件操作符
//int mian()
//{
//	int a = 10;
//	int b = 20;
//	int max = 0;
//
//	// exp1 ? exp2 : exp3
//	// exp1 为真,执行exp2;
//	// exp1 为假,执行exp3;
//	max = (a>b ? a : b);
//
//	//if(a > b)
//	//	max = a;
//	//else
//	//	max = b;
//
//	return 0;
//}
 逻辑操作符
//int main()
//{
//	// 真 -- 非0
//	// 假 -- 0
//
//	// && -- 逻辑与
//	// || -- 逻辑或
//
//	int a = 3;
//	int b = 5;
//	int c = a && b;
//	int d = a || b;
//
//	printf("c = %dn", c);
//	return 0;
//}
// 关系操作符
// > >= 大于等于
// < <=
// !=
(类型)--强制类型转换
//int main()
//{
//	int a = (int)3.14; //将double强制装换为init
//	return 0;
//}
//int main()
//{
//	int a = 10;
//	int b = a++; //后置++,先使用a赋给b,a再自增
//	int c = 10;
//	int d = ++c; //前置++,c先自增,再使用c赋给d
//	int e = 10;
//	int f = e--; //后置--,先使用a赋给b,a再自减
//	int g = 10;
//	int h = g--; //前置--,g先自减,再使用g赋给h
//	printf("a = %d b = %d c = %d d = %dn", a, b, c, d); // 11 10 11 11
//	printf("e = %d f = %d g = %d h = %dn", e, f, g, h); // 9 10 9 9 
//	return 0;
//}
// 只要是整数,内存中存储的都是二进制的补码
// 正数--原码、反码、补码是相同的
// 负数
//
原码 ------------------------> 反码
------------------>
补码
// 直接按照正负写出的二进制序列
原码的符号位不变,其他位按位取反
反码加1

// -2
10000000000000000000000000000010 - 原码
// -2
11111111111111111111111111111101 - 反码
// -2
11111111111111111111111111111110 - 补码
// -1 
// 1
//有符号数在内存中二进制的最高位表示符号
//[1][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] 负数
//[0][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] 正数
//int main()
//{
//	// ~ 按二进制位取反
//	int a = 0; 
//	int b = ~a;
//	//00000000000000000000000000000000
32个0
//	//11111111111111111111111111111111
//
//+1
//
//100000000000000000000000000000000
//
//-1
//
//1*2^32-1
//	//源码、反码、补码
//	//复数在内存中存储的时候,存储的是二进制的补码
//	//11111111111111111111111
//	//11111111111111111111110
//	//10000000000000000000001
//	printf("%dn", b ); //-1
//
//	return 0;
//}
//int main()
//{
//	int a = 10;
//	int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//int是元素的类型,数组的类型是int[10]
//	int num = 0;
//	//sizeof 计算变量或类型所占空间的大小,单位是字节
//	printf("%dn",sizeof(a));
//	printf("%dn",sizeof(int));
//	printf("%dn",sizeof(arr)); //计算数组大小,单位是字节
//
//	//计算数组元素的个数
//	//个数=数组总大小/每个元素的大小
//	num = sizeof(arr)/sizeof(int);
//	printf("%dn",num);
//
//	return 0;
//}
单目操作符
双目操作符
三目操作符
//
//int main()
//{
//	//c语言中表示真假 0-假;非0-真
//	int a = 10;
//	int b = -a;
//
//	printf("%dn",a);
//	printf("%dn",!a);
//	return 0;
//}
//int main()
//{
//	int a = 10;
//	a = 20;
//	//复合赋值符
//	a = a+10;
//	a += 10;
//
//	a = a-20;
//	a -=2 0;
//
//	return 0;
//}
//int main()
//{
//	//位操作符
//	//& 按位与
//	//| 按位或
//	//^ 按位异或:对应的二进制位相同为0,相异则为1
//
//	int a = 3; // 0 0 1 1
//	int b = 5; // 0 1 0 1
//	int c = a&b;
//	int d = a|b;
//	int e = a^b;
//
//	printf("%dn" ,c); // 1
//
printf("%dn" ,d); // 7
//	printf("%dn" ,e); // 6
//
//	return 0;
//}
//int main()
//{
//	//int a = 5/2;
//	int a = 5%2;
//取模
//	printf("%dn",a);
//	return 0;
//}
//int main()
//{
//	int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //定义一个存放10个整型数字的数组
//
//数组下标从0开始
//	//char ch[20];
//	//float arr2[5];
//	int i = 0;
//
//	printf("%dn",arr[4]);
//
//	while(i<10)
//	{
//
printf("%dn",arr[i]);
//
i++;
//	}
//
//	return 0;
//}
//int add(int x, int y)
//{
//	int z = x + y;
//	return z;
//}
//int main()
//{
//	int num1 = 10;
//	int num2 = 20;
//	int sum = 0;
//
//	int a = 100;
//	int b = 200;
//
//	sum = add(a, b);
//
//	//scanf("%d%d",&num1,&num2);
//	sum = num1 + num2;
//	printf("sum = %dn",sum);
//
//	return 0;
//}
//int main()
//{
//	int line = 0;
//	printf("加入比特n");
//
//	while(line<=200)
//	{
//
printf("敲一行代码:%dn",line);
//
line++;
//

//	}
//
//	if(line>180)
//
printf("好offer");
//

//	return 0;
//}
//int main()
//{
//	//int input = 0;
//
//	//printf("加入比特n");
//	//printf("你要好好学习吗?(1/0)>:");
//
//	//scanf("%d",&input);
//
//	//if(input==1)
//	//	printf("好offern");
//	//else
//	//	printf("卖红薯n");
//
//	return 0;
//}

最后

以上就是端庄小蚂蚁为你收集整理的C语言初学1--基础的全部内容,希望文章能够帮你解决C语言初学1--基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部