c语言第二课

变量:在程序运行过程中可以改变的在这里插入代码片
int main()
{
int a=10;//a位局部变量
}
a=10: =位赋值 左边是坐值 右边为右值
局部变量默认值是随机值且不能使用未初始化的局部变量
内存分为:
栈(stack) 特性: 先进后出 作用域:在花括号{}之间 生命周期:程序或函数运行完,内存自动回收
堆(heap) 必须由程序员手动释放内存
调试 :1、打断点(点击鼠标)2、逐过程、逐语句
常量:程序运行过程不可改变的
const int a=10;//const为关键字 作用定义常量
*定义常量时必须要进行初始化编译时确定值

define People 10

define为宏 作用:预编译(.C–.i)、注释的替换(空格)、头文件的引入
运算符:():函数、提升优先级、强制类型转换
!: 逻辑非 (a=1;//!a=0 !!a=1)
~:按位取反 例 4=0000 0100 ~4=1111 1011
》:安位右移
《 :按位左移
^:异或
&&:取地址符 与
*:定义指针
sizeof:关键字 求当前变量字节 且程序编译期间只确定类型,不参与运算 对于指针类型都为4字节
?:
if
{
a>b? a:b;//如果a>b返回a否则返回b
}
else
{
}
**程序举例`

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

在这里插入图片描述

# include<stdio.h>
int main()
{
	/*int a=10;
	a+=10;
	printf ("%d\n",a);
	return 0;*/
	float f1 = 5/2;//5/2=2.5   取整数2.000000
	float f2 = (float)5/2;//强转
    float f3 = (float)(5/2);//()运算符优先级比较大
    float f4 = 5/(float)2;//5/2=2.5
	printf ("%f\n",f1);
	printf ("%f\n",f2);
	printf ("%f\n",f3);
	printf ("%f\n",f4);
	return 0;
}

在这里插入图片描述

# include<stdio.h>
int main()
{
    printf("%d\n",10%3);//10/3....1
	printf("%d\n",-10%3);//-10/3==-3....-1
	printf("%d\n",-10%-3);//-10/-3==3...-1
	printf("%d\n",10%-3);//10/-3==-3...1
	
	return 0;
}

在这里插入图片描述

 int a = 10;
	printf("%d\n",sizeof(a));
	printf("%d\n",sizeof a );
	printf("%d\n",sizeof (int) );
	return 0;

在这里插入图片描述

int a=10;
    int *p=&a;
	printf("%d\n",sizeof a);
	return 0;

指针类型都为4字节

int a = 10;
	int* p = &a;//*:代表指针
	*p = 100;//*:间接访问符 ==》 解引用
	printf("%d\n",a);//100
	int **pp = &p;
	**pp = 10000;
	printf("%d\n",a);//10000

在这里插入图片描述

int i = 1;
	int i2 = 0;
	int i3 = 2;
	if(i++ && i2++ && i3++) //逻辑与  i&&i2为假所以直接else 所以i+1,i2+1,。
	{
		printf("is true\n");
	}
	else
	{
		printf("is false\n");
	}
	printf("%d,%d,%d\n",i,i2,i3);
}

在这里插入图片描述

# include<stdio.h>
int main()
{
	char ch = '郭';
	printf("%c\n",ch);//汉字是两个字节所以打印不出来
	char ch1[5]="高";
	printf("%s\n",ch1);
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zxc1803/article/details/83031494