C语言笔记

C语言笔记.

1fn+f5运行 fn+f10一步一步运行
显示结果: 项目名称–>属性–>链接器–>系统–>子系统–>控制台()
\n是换行作用

main函数有且只有一个,是程序开始的地方
int是整形的意思 main前面的int标识main函数调用返回的一个整型值

数据类型:让我们内存使用率更高
char: //字符类型
short //短整型
int //整型
long //长整型
long long //更长的整型
float //单精度浮点数
double //双精度浮点数

#include
int main()
{
     
    printf("%d\n",sizeof(char));//1
    printf("%d\n",sizeof(short));//2
    printf("%d\n",sizeof(int));//4
    printf("%d\n",sizeof(long));//4
    printf("%d\n",sizeof(long long));//8
    printf("%d\n",sizeof(float));//4
    printf("%d\n",sizeof(double));//8
    return 0 ;
}

注意:sizeof(long)>=sizeof(int)即可
//后面的数字表示字节。

字节:

计算机中的单位:bit 比特位 一个比特位可以储存一个1或者0

byte 字节 一个字节等于八个比特位
kb–mb–gb–tb–pb换算都是1024

打印格式
%c --打印字符格式的数据 打印字符
%f --打印浮点数 小数
%p --以地址的形式打印
%x --打印十六进制数
%o --打印八进制数
%d --打印整数十进制数据 -打印整型
%s --字符串类型

变量

初赋值作用,尽量要初赋值

局部变量:(优先性):

#include 
int b=100//在这里b为全局变量
int a=200//在这里a为全局变量    
int main()
{
     int a=10;//这里为局部变量
 printf("%d\n",a);//当局部变量和全局变量名字相同时,优先的是局部变量,尽量不让他们名字相同
    return 0;
}

(区域性):

#include 
int main ()
{
     
    {
     
        int a=10
    }
    printf("%d\n",a);//这里无法打印,因为局部变量a只能在它所处的区域里面使用
    return 0;
}
# include 
int main()
{
     //计算两个数的和
	int num1 = 0;
	int num2 = 0;//这里两个零都是初赋值,换成其他的数值也行
	//输入数据-使用输入函数
	int sum = 0;//这里就是最前面
	scanf("%d%d", &num1,& num2);/*这里可能会显示scanf被忽略的问题,可以使用scanf_s函数
	                              查看scanf笔记*/
	
	//int sum =0----C语言规定:变量要定义在当前代码块的最前面
	sum = num1 + num2;
	printf("sum=%d\n", sum);
	return 0;
}

&是取地址符号
C语言规定:变量的定义要在当前代码块的最前面

变量的作用域与生命周期

作用域:程序设计概念,一段程序代码中所用到的名字宾并不总是有效的/可用的。。
而限定这个名字的可用性的代码范围就是这个名字的作用域。(哪里可以用,哪里就是它的作用域)

局部变量的作用域
# include 
int main()
{
     
    
    {
     
        int num=0;/*这里不能打印,因为这里的int num=0作用域(当前代码块)限制了,
                     无法打印,类似于局部变量*/
        
    }
	int num = 0;
	printf("num=%d\n", num);//这里可以打印num=0,表示在这个代码块是int num =0的作用域

	return 0;
}
# include 
int main()
{
     
	printf("num=%d\n", num);
    {
     
        int num=0;//这里可以打印,以为这处的代码块被外面代码块包含
    }

	return 0;
}
全局变量作用域是整个工程

extern声明:

可以使用另一个源文件里面声明过的量
在大括号外面也可以用,项目外面也也可以用
生命周期
局部变量:进入它的作用域 生命周期开始,出去则结束
全局变量的生命周期在整个程序

常量

1.字面常量

2.const修饰的变量
常变量,有常属性,但本质上还是个变量,在使用常量时,没有办法使用,

#include 
int main()
{
     
	//const---常属性
	const int  num = 4;//num不能更改了
	printf("%d\n", num);
	//num = 8;//这里的num无法更改
	printf("%d\n", num);
	return 0;
}

3.#define定义的标识符常量

#include 

#define MAX 10//定义的标识符常量
int main ()
{
	int arr[MAX] = { 0 };
	printf("%d\n", MAX);
return 0;
}

4.枚举常量:枚举常量是不能改的,但是枚举里面的变量是可以改的

#include 
enum SEX
{
     
	MALE,
	FEMALE,
	SECRET
};
int main()
{
     //枚举关键字 enum
	enum SEX s = FEMALE;//这里s是枚举里面的变量
	printf("%d\n", MALE);//0
	printf("%d\n", FEMALE);//1
	printf("%d\n", SECRET);//2
	return 0;
}

字符串

“hello bit.\n”

“hello bit”
“”----空字符串

注:字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是标志。不算作字符串内容。

char arr1[]="abc";    //"abc"='a''b''c''\0'   '\0'是字符串的结束标志,不算字符串的内容

char arr2[]={
     'a','b','c'};   //就是'a''b''c'没有结束标志,会出现随机值加\0与0都一样

转义字符

转义字符 注释
? 连续书写多个问号时,防止被解析成三字母词
\ 用于表示一个斜杠
\a 警告字符
\b 退格
\f 进纸
\v 垂直制表符
\n 换行
\r 回车
\t 水平制表符
\ddd 八进制
\xdd 十六进制

关于八进制与十六进制:

#include
#include
int main ()
{
     
    printf("%s\n",strlen("c:\test\32\test.c"))//13,其中\32是一个字符。
    return 0}

注释

用来解释代码

函数
自己定义一个加法函数的例子:

#include

int HHH(int x, int y)//这里括号后面不能加分号,否则会显示:应输入声明
{
     
	int z = 0;
	z = x + y;
	return z;//这里需要返回z,如果返回的是0,那么总结果为0,如果返回的是3,那么总结果为3
}
int main()
{
     
	int tm1 = 1;
	int tm2 = 2;
	int sum;
	scanf_s("%d%d", &tm1, &tm2);
	//sum = tm1 + tm2;
	sum = HHH(tm1, tm2);
	printf("%d\n", sum);
	return 0;
}

你可能感兴趣的:(c语言,r语言)