初识C语言(一)

  1. 首先说一下常见的四个变量:枚举常量、字面常量、 const修饰的常变量

    、#define定义的标识符常量

    (1)枚举常量(创建一个新类型,然后可以定义新的类型变量,将这些变量的取值定义为一组可能值)

    //枚举常量
    include<stdio.h>
    enum Color
    {
    	RED,
    	YELLOW,
    	BLUE,
    };
    int main()
    {
    	enum Color color = BLUE;
        color = YELLOW;
    	return 0;
    }

    (2)字面常量(整型、浮点型、字符串型、字符型)

    include<stdio.h>
    int main()
    {
       int a=12,b=012,c=0x12;
       printf("全部转换为十进制输出:%d %d %d\n",a,b,c);
       return 0;
    }

    (3) const修饰的常变量

    如果一个常量被const修饰,那么它的值就不能再改变,用const修饰变量时,一定要先给变量进行初始化,否则后面就不能进行赋值了

    int n=0;
    const int n=5;

    (4)#define定义的标识符常量

    #define MAX 100;//define定义宏变量
    int mian()
    {
    	int a = MAX;//MAX=100
    	return 0;
    }
    #define 标识符 常量  //注意define最后没有分号
    #define MAX_VALUE 100  //定义整型变量的值为100

 2. 字符与字符串

int main()
{
	char arr1[] = { 'a','b','c',0 };  //"abc"='a''b''c''\0'_字符串的结束标志是\0
	char arr2[] = "abc";
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	return 0;
}
int main()
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };
	printf("%d\n", strlen(arr1));//3
	printf("%d\n", strlen(arr2));//随机值
	printf("%d\n", strlen("c:\test\32\test.c"));
//转义字符  \32  32是2个8进制数字   32作为8进制代表的十进制数字,作为ASSII码值对应的字母   
//  \ddd ddd表示1-3个八进制数字     \xdd dd表示2个十六进制数字
	return 0;

3.if语句 

int main()
{
	int input = 0;
	printf("进入清华大学\n");
	printf("你要好好学习吗?(1/0)>:");
	scanf("%d", &input);
	if (input == 0)
		printf("回家种地\n");
	else
		printf("走向人生巅峰\n");
	return 0;
}

4. 循环语句

int main()
{
	printf("加入华为\n");
	int line = 0;
	while (line <= 2000)
	{
		line++;
		printf("继续工作%d\n",line);
	}
	if (line > 2000)
		printf("迎娶白富美\n");
	return 0;
}

5. 函数的调用

int Add(int x, int y)
{
	int z = x + y;
	return z;
}
int main()
{
	int num1 = 10;
	int num2 = 20;
	int sum = 0;
	sum = Add(num1, num2);
	printf("sum=%d\n", sum);
	return 0;
}

6. 数组的使用与访问

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };
	int i = 0;
	while (i < 10)
	{
		printf("%d\n", arr[i]);
		i++;
	}
	//printf("%d\n", arr[4]);//下标的方式访问元素
    return 0;
}

下面举个函数调用的例子

比较固定两个数的大小

int main()
{     
    //对两个固定的数进行比较    //使用函数 对输入的两个数进行比较
	int num1 = 10;            int x=0;
	int num2 = 20;            int y=0;
	int max = 0;              int max=0;
	max = Max(num1,num2);     printf("请输入a,b的数值:\n");
	printf("max=%d\n",max);   scanf("%d%d",&a,&b);
	return 0;                 max=Max(a,b);
}                             printf("较大值是:%d\n",max);
 Max(int a,int b)
{
	if (a > b)
		return a;
	else
		return b;
}

 常规的if语句比较两个数大小如下,大家可以看一下二者的区别

int main()
{
	int a = 0;
	int b = 0;
	printf("请输入a,b的数值:\n");
	scanf("%d%d", &a, &b);
	if (a > b)
	    printf("最大值是:%d\n", a);          //printf("最大值是:%d\n", a);
	else                                     //else if(a>b)
		printf("最大值是:%d\n", b);          //printf("最大值是:%d\n", b);
	                                         //else
	                                         //printf("%d");
	return 0;
}

7. 按位取反

int main()
{
	int a = 0;              正数-原码、补码、反码相同
	                        只要是整数,内存中存储的都是二进制的补码
	int b = ~a;             原码(直接按照+-,写出的二进制序列)、反码(原码的符号位不变,其他位按位取反)、补码(反码+1) 
	printf("%d\n", b);      111111111111111111111111 补
	return 0;               111111111111111111111110 反
}                           100000000000000000000001 原

8. 前置++与后置++

int main()
{
	int a = 10;
	//int b = ++a;//前置++,先++,再赋值
	//int b = a++;//后置++,先赋值,再++
	printf("a=%d b=%d\n", a, b);
	return 0;
}

9. 逻辑与&& 与逻辑||

int main()
{
	int a = 0;
	int b = 0;
	int c = a && b;
	int c = a || b;
	printf("%d\n", c);
	return 0;
}

 10. 三目运算符

int main()
{
	int a = 10;
	int b = 20;
	int max = 0;
	max = (a > b ? a : b); //a>b为真,则赋值给a,为假,则赋值给b
	if (a > b)
		max = a;
	else
		max = b;
	return 0;
}

11.操作符

int main()
{
	int arr[10] = { 0 };
	arr[4]; //下标引用操作符   //函数调用操作符 int sum =Add(a,b);
    
	return 0;
}

12. 关键字的使用

int main()
{
	typedef unsigned int u_int;//typedef类型定义 -类型重定义
	unsigned int num = 20;     //register 把变量定义成寄存器变量
	u_int num2 = 20;
	return 0;
}

特别说明一下static 的用法与#define的用法

static修饰局部变量 局部变量的生命周期变长,
其他文件中的全局变量在本文件中声明extern外部符号,即可使用,
static修饰全局变量时,其他文件中的全局变量在本文件中声明extern外部符号,不可使用,改变了作用域,让静态的全局变量只能在自己所在的源文件内部使用,
外部全局函数一个道理,static改变了函数的链接属性,加了static后,外部链接属性——>内部链接属性。

int main()
{
    int i = 0;
	while (i < 5)
	{
		test();
		i++;
	}
	return 0;
}
void test()
{
	static int a = 1;//a是一个静态的局部变量,不加static输出5个2,加static输出1 2 3 4 5
	a++;
	printf("a=%d\n", a);
}
函数的实现
int Max(int x, int y)
{
	if (x > y)
		return x;
	else
		return y;
}
宏定义  此处宏定义=上面函数的实现
#define MAX(X,Y)(X>Y?X:Y)
int main()
{
	int a = 10;
	int b = 20;
	int max = Max(a, b);
	printf("max=%d\n", nax);
	return 0;
}

13. 指针的使用

int main()
{
	int a = 10;//4个字节
	int *p=&a;//取出a的地址
	//有一种变量是用来存放地址的-指针变量
	//printf("%p\n", p);   
	*p = 20;//* - 解引用操作符
	printf("a=%d\n", a);
	//printf("%p\n", &a);
	return 0;
}
int main()
{
	char ch = 'w';
	char* pc = &ch;
	printf("%d\n", sizeof(pc));
	//*pc = 'a';
	//printf("%c\n", ch);
	return 0;
}
int main()
{
	double d = 3.14;
	double* pd = &d;
	*pd = 5.5;
	printf("%d\n", sizeof(pd));
	printf("%lf\n", d);
	printf("%lf\n", *pd);
	return 0;
}

14. 创建结构体,结构体=复杂对象+属性
//创建一个结构体类型

struct Book
{
	char name[20];//c语言程序设计
	short price;//55
};
int main()
{
	//利用结构体类型-创建一个该类型的结构体变量
	struct Book b1 = { "c语言程序设计",55 };
	strcpy (b1.name,"c++");  //数组字符串的修改赋值需要用到strcpy-string copy-字符串拷贝,需要add库函数string.h
	struct Book* pb = &b1;
	//利用指针pb打印出我的书名和价格
	//.    结构体变量.成员
	//—>  结构体指针—>成员
	printf("%s\n", pb->name);
	printf("%d\n", pb->price);
                                    //上面两行与下面注释两行代码是等价的
	//printf("%s\n", (*pb).name);
	//printf("%d\n", (*pb).price);

	printf("书名:%s\n", b1.name);
	printf("价格:%d元\n", b1.price);
	b1.price = 15;
	printf("修改后的价格:%d元\n", b1.price);
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值