首页 > 其他分享 >初识C语言(2)

初识C语言(2)

时间:2023-10-15 18:02:25浏览次数:38  
标签:10 arr return int C语言 初识 printf main

一、常量

1.字面常量

即数字本身,例如:3,100,3.14

int main()
{
	int num = 4;
	printf("%d\n", num);
	num = 8;
	printf("%d\n", num);
	return 0;

初识C语言(2)_赋值

2.常变量

const-常属性(赋予一个变量常属性,变量→常变量(当然其本质上还是个变量),如下图,num变为const修饰的常变量,它的值无法改变

int main()
{
	const int num = 4;
	printf("%d\n", num);
	num = 8;
	printf("%d\n", num);
	return 0;
}

初识C语言(2)_补码_02

int main()
{
	const int n = 10;//n是变量,但是又有常属性,所以说n是常变量
	int arr[n] = {10};
	return 0;
}

初识C语言(2)_赋值_03

3.标识符常量

#define定义的标识符常量

int main()
{
#define max 10
	int arr[max] = { 0 };
	printf("%d\n", max);
	return 0;
}

初识C语言(2)_数组_04

4.枚举常量

enum Color
{
	RED,
	GREEN,
	BLUE
};

int main()
{
	printf("%d\n", RED);//0
	printf("%d\n", GREEN);//1
	printf("%d\n", BLUE);//2
	return 0;
}


二、字符串类型——用“”引起来的一串内容

int main()
{
	char arr1[] = "abc";//数组
	//字符串内容中默认以'\0'结尾,是字符串的结束标志,如果没有\0,则后随机值
	char arr2[] = { 'a','b','c'};
	printf("%s\n", arr1);//abc
	printf("%s\n", arr2);//abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫贴-??
	return 0;
}

初识C语言(2)_赋值_05

上图中97,98,99是ASCII码值,这种编码方式叫做ASCII编码,每一个字母符号在计算机中对应一个ASCII码值

转义字符

\n换行

\t水平制表符

\\转义第二个反斜杠,表示为一个\

······


三、循环

while循环

int main()
{
	int line = 0;
	while (line < 20000)
	{
		printf("请继续加油\n");
		line++;
	}
	printf("God job!");
	return 0;
}

for循环

......


四、函数

分为库函数和自定义函数

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(num1, num2);//调用自定义函数
	printf("sum=%d\n", sum);
	sum = add(a, b);
	printf("sum=%d\n", sum);
	return 0;
}

特点是简化代码,代码复用


五、数组

定义:一组相同类型元素的集合

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//定义一个存放10个整数数字的数组,数组下标从0开始
	printf("%d\n", arr[4]);//用下标的形式访问元素,e.g. arr[下标]
	char ch[20];
	float arr2[5];
	return 0;
}

初识C语言(2)_赋值_06

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//定义一个存放10个整数数字的数组,数组下标从0开始
	int i = 0;
	while (i < 10)
	{
		printf("%d\n", arr[i]);
		i++;
	}
		return 0;
}

初识C语言(2)_数组_07


六、操作符

1.算数操作符

+加

-减

*乘

/除

%取模(取余数

2.移(二进制)位操作符

<<左移

>>右移

int main()
{
	int a = 1;//整型1占4个字节-32bit位
	//00000000000000000000000000000001
	int b=a << 1;
	//00000000000000000000000000000010
	printf("%d\n", b);//2
	int c = a << 2;
	printf("%d\n", c);//4
	return 0;
}

3.(二进制)位操作

&按位与(0为假,1为真,对应的二进制位只要有1个为假就是假,全为真才是真)

int main()
{
	int a = 3;//011
	int b = 5;//101
	int c = a & b;//001
	printf("%d\n", c);//1
	return 0;
}

 | 按位或(0为假,1为真,对应的二进制位只要有1个为真就是真,全为假才是假)

int main()
{
	int a = 3;//011
	int b = 5;//101
	int c = a | b;//111
	printf("%d\n", c);//7
	return 0;
}

^按位异或/非(0为假,1为真,对应的二进制位相同则为假,相异则为真)

int main()
{
	int a = 3;//011
	int b = 5;//101
	int c = a ^ b;//110
	printf("%d\n", c);//6
	return 0;
}

4.赋值操作符

赋值符=

复合赋值符a=a+1~a+=1

a=a-2~a-=2

a=a&3~a&=3

*=; %=; >>=; <<=; |=; ^=

……

5.单目操作符

!逻辑反操作(0-假,非0-真)

int main()
{
	int a = 10;
	printf("%d\n", a);//10
	printf("%d\n", !a);//a为真,!a为假,即是0
	return 0;
}
int main()
{
	int a = 0;
	printf("%d\n", a);//0
	printf("%d\n", !a);//a为假,!a为真,即是1
	return 0;
}

-取负值

+取正值

sizeof计算的是变量/类型所占空间的大小,单位是字节

int main()
{
	int a = 10;
	int arr[10] = { 0 };
	int sz = 0;
	printf("%d\n", sizeof(arr));//40
	sz = sizeof(arr) / sizeof(arr[0]);//计算数组元素的个数
  //数组总大小/数组中每个元素的大小
	printf("%d\n", sz);//10
	printf("%d\n", sizeof(a));//4
	printf("%d\n", sizeof(int));//4
	printf("%d\n", sizeof a);//4
	return 0;
}

&取地址

~按(二进制)位取反

int main()
{
	int a = 0;//00000000000000000000000000000000
	int b = ~a;//11111111111111111111111111111111,b是个有符号的整型,最高位为0表示正数,最高位为1表示负数
  //原码、反码、补码,原码→(符号位不变,其他位取反)→反码→+1→补码
  //负数在内存中存储的时候,存储的是二进制的补码
	printf("%d\n", b);//-1,打印的是这个常量的原码
  //所以过程是:b是补码,b-1得到反码为11111111111111111111111111111110
  //反码符号位不变其他位取反得到原码为100000000000000000000000000000001,表示-1
  return 0;
}

++自增(即+1)

int main()
{
	int a = 10;
	int b = a++;//后置++,先将a赋值给b,后a+1
	printf("a=%d\nb=%d\n", a, b);//a=11,b=10
	int c = 10;
	int d = ++c;//前置++,先c+1,后赋值给d
	printf("c=%d\nd=%d\n",c,d);//c=11,d=11
	return 0;
}

--自减(即-1)

int main()
{
	int a = 10;
	int b = a--;//后置--,先将a赋值给b,后a-1
	printf("a=%d\nb=%d\n", a, b);//a=9,b=10
	int c = 10;
	int d = --c;//前置++,先c-1,后赋值给d
	printf("c=%d\nd=%d\n",c,d);//c=9,d=9
	return 0;
}

()强制类型转换

int main()
{
	int a = 3.14;
	return 0;
}

初识C语言(2)_赋值_08

int main()
{
	int a = (int)3.14;//double→int
	return 0;
}

标签:10,arr,return,int,C语言,初识,printf,main
From: https://blog.51cto.com/u_16292010/7872897

相关文章

  • C语言数据类型占用字节大小+rand_mode/randomize_mode/static constraint+I2C和SPI的
    C语言数据类型占用字节大小https://blog.csdn.net/sinan1995/article/details/79577106对于整形,最大8字节,超出8字节的计算,要么用库,要么不用。64位编译器:char/unsignedchar:1字节char*:8字节shortint:2字节int/unsignedint:4字节longint:8字节float:4字节double:8字节lon......
  • C语言快速排序详解
    【1】快速排序核心思想核心思想是分而治之,每一轮排序都会选出一个基准,一轮排序完成后,所有比基准小的数一定在左边,比基准大的数一定在右边,在分别通过同样的方法对左右两边的数组进行排序,不断划分,最后完成整个数组的排序。它的效率相比冒泡排序的双重for循环有所提升。时间复杂......
  • JavaWeb-初识Servlet
    目录1.Servlet简介2.Tomcat安装配置3.Servlet项目搭建4.Servlet项目运行内容Servlet简介Servlet是什么JavaServlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使......
  • 【C语言入门】第十四天
    【例题1】1260.二维网格迁移-力扣(LeetCode)/***Returnanarrayofarraysofsize*returnSize.*Thesizesofthearraysarereturnedas*returnColumnSizesarray.*Note:Bothreturnedarrayand*columnSizesarraymustbemalloced,assumecallercallsfree(......
  • 【C语言入门】第十五天
    【例题1】938.二叉搜索树的范围和-力扣(LeetCode)/***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/intrangeSumBST(structTreeNode*root,intlow,inthigh){......
  • 1+X证书--传感器应用开发初级-C语言点亮LED灯
    #include<CC2530.h>//引入头文件CC2530.h。#defineled1P1_0//宏定义led1为端口P1_0。#defineled2P1_1//宏定义led2为端口P1_1。voidmain(void)//在main函数中进行程序的运行。{P1DIR=(0x01<<0)|(0x01<<1);//定义输出端口。led1=1;//点亮led1灯:1是亮,0是灭。led......
  • C语言 通过union共存体释放常量指针指向的堆空间
    union共存体中所有成员占用相同的内存空间。因为free函数参数是void*,常量指针是constvoid*,所以free函数释放常量指针时会因类型不同而失败。#include<stdio.h>#include<malloc.h>#include<string.h>typedefunion_const_ptr{constvoid*cp;void*vp;}co......
  • C语言 strdup函数把字符串复制到新空间
    头文件是string.h。根据传入的字符串参数,malloc分配空间并复制,返回首地址,该地址通过free来释放。#include<stdio.h>#include<malloc.h>#include<string.h>intmain(){chara[20]="123";char*b=strdup(a);printf("%s\n",b);free(b);......
  • C语言 likely和unlikely
    likely和unlikely作用在知道哪个发生概率更高的情况下,有if时使用likely和unlikely让代码运行更快。likely和unlikely是两个宏,当有if-else分支时告诉编译器,哪个条件更加有可能发生。likely代表if分支大概率会发生,unlikely代表if分支大概率不会发生。#definelikely(x)__builtin_......
  • Java基础-初识JDBC
    目录1.JDBC简介2.JDBC项目3.JDBC的导入4.JDBC的使用内容JDBC简介什么是JDBCJDBC的全称是Java数据库连接(JavaDatabaseconnect),它是一套用于执行SQL语句的JavaAPI。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等......