初探C课程系列一

前言

本次我们主要从:数据类型、数组、内存布局、指针初探C,在学校C之前我们需要安装开发环境,这里我使用的是Visual Studio

 下载地址:Visual Studio,在这里Visual Studio有三个安装版本,分别为:Community 2017Professional 2017Enterprise 2017,具体区别就不说了,这里我推荐使用Community 2017,点击直接下载即可,下面我们就来简单的说一下Visual Studio安装

及初探C数据类型、数组、内存布局、指针。

 

Visual Studio安装步骤

 

1.下载链接Visual Studio。

2.安装成功后显示界面如下:

 

success

 

3.安装Visual Studio成功后,一般情况下不会创建桌面快捷键,我们需要自己创建桌面快捷键,我们在安装Visual Studio的目录下找到devenv.exe,D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE。

4.安装你需要的插件及工具:

选择顶部菜单栏:工具(T)---->获取工具和功能(T)。操作图如下:

 

tools

安装开发相关工具

plugin

 

Visual Studio安装出错解决

 

错误:this application requires.net framework4.0/4.6,please install the.net framework then run this installer

 

error

 

解决办法是:在网上输入.net framework4.0/4.6下载安装一下 就可以了,在这里看你的电脑安装提示需要的是4.0/4.6或者更高的版本,按照提示去下载响应的版本即可。.net framework4.0/4.6下载链接。Microsoft .NET Framework介绍

 

进入正题

 

上面一切安装都OK的话,下来我们直接创建我们的第一个项目。

 

方法一

new

 

方法二

文件------>新建------->项目

 

Newport

 

 

我们创建的第一个项目

 

1.基本数据类型

 

1.signed:有符号,可修饰char、int。Int是默认有符号的。
2.unsigned:无符号

 

整型          字节取值范围                       占位 符
int           4-2,147,483,648 到 2,147,483,647%d
unsigned int40 到 4,294,967,295 %hd 
short         2-32,768 到 32,767%u
unsigned short20 到 65,535  %hu
long          4-2,147,483,648 到 2,147,483,647%ld 
unsigned long40 到 4,294,967,295%lu
char          1-128 到 127%c  
unsigned char 10 到 255  %c

 

1.为了得到某个类型或某个变量在特定平台上的准确大小,使用 sizeof 运算符。

2.表达式 sizeof(type) 得到对象或类型的存储字节大小。

3.long int 其实就是长整型 = long 可以省去int,在标准中规定 int至少和short一样长,long至少和int一样长。

 

浮点型     字节精度    占位
float      46位小数%f  
double     815位小数%lf
long double819位小数%Lf

 

C 布尔bool

 

C99标准以前,C语言里面是没有bool,C++里面才有,C99标准里面定义了bool类型,需要引入头文件stdbool.h
bool类型有只有两个值:true =1 、false=0。因此实际上bool就是一个int所以在c/c++中 if 遵循一个规则, 非0为true,非空为true;NULL 其实也就是被define为了 0。

 

printf输出打印,类似Java system.out.println("")。

 

格式化String.format("%d",xx)

 

在C中//常用 sprintf 来格式化字符串,举个例子:

 char str[100];

	for (size_t i = 0; i < 3; i++)
	{
		//讲 2、3参数 格式化的 字符 复制到 str 中
		sprintf(str, "C:/Users/Administrator/Desktop/临时文件/%d.txt", i);
		//  \n 换行
		printf("%s\n", str);
	}

 

输出结果: 

 

RESUL

 

数组声明

 

 c当中 定义数组 必须指明数组长度 或者 声明与赋值写在一起,连续的内存 int=4*6 = 24 字节 栈内存。声明数组:

//java

int[] var


//C 必须声明时候确定大小

int var[10] 


//大小

printf("%d",sizeof(var)/sizeof(int));


1.栈内存限制  linux:ulimit -a 查看
2. 但是直接分配这么大不行,因为堆栈可能保存参数,返回地址等等信息。

 

动态内存申请

 

malloc

没有初始化内存的内容,一般调用函数memset来初始化这部分的内存空间。当数据无法确定 或者 比较庞大 需要使用动态内存申请 在堆中:

int *di1 = (int*)malloc(1 * 1024 * 1024); 

动态申请内存应该紧跟 memset 初始化内存

memset(di1, 0, 1 * 1024 * 1024);

将di1指向的内存 初始化为0,长度为1 * 1024 * 1024。

对malloc申请的内存进行大小的调整
 

realloc(di1, 20 * sizeof(int));

申请内存并将内存初始化为 null(null就是 0)

int *di2 = (int*)calloc(10, sizeof(int)); 


等同于:


int *ii2 = (int*)malloc(sizeof(int)*10);
memset(ii2, 0, sizeof(int)*10);

 

free 将指针置为 null,eg:

 

if (di1) {
		 free(di1);
		 di1 = 0;
	 }
	 if (di2) {
		 free(di2);
		 di2 = 0;
	 }
	
	
	system("pause");
	return 0;

 

C面向过程,C++面向对象编程。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值