学习笔记1(C简单语法,数组的定义)

2017-08-11  本文已影响12人  wenou

一、Hello World

创建vs项目:
文件->新建->项目->Visual C++ -> Win32 控制台应用程序 ->命名

hello word:

int main(){  //主入口
    printf("Hello word"); //打印到控制台
    system("pause"); //暂停 使用system需要添加头文件#include <stdlib.h>
    return 0;
}

注释代码的快捷键 Ctrl+k+c

二、C基本语法

//基本数据类型
//int short long float double char bool 
//short %d 
//long %ld 
//float %f 
//double %lf 
//char %c 
int main(){ 
    int i = 1; 
    printf("%d\n",i); //%d 此处代表int类型的i , \n 表示换行的意思(控制台打印一个1后换行) 
    float f = 23.3; 
    printf("%f\n",f); //%f 此处代表folat类型的f 
    system("pause"); //停住控制台 
    return 0; 
  }
int main(){ 
    int n; 
    printf("请输入一个int数据:\n"); 
    printf("地址:%#x\n",&n); 
    //打印n的地址 
    // scanf()控制台输入语句 
    //%d 需要一个int 或者short 类型的数据 
    //&n 取n这个变量的地址 
    scanf("%d", &n); //从控制台读取一个数据写入到内存里面 
    printf("%d\n",n); 
    system("pause"); 
    return 0; 
}         
//1.必须指定数据类型 
//2.必须定义的时候指定数组长度 分配内存空间 
int intArray[10]; 
float fArray[10];
//错误一: 
//使用scanf获取N的值不能定义数组,因为scanf函数是在运行的时候才获取值,在预编译的时候n是没有值的 数据的定义一定要确定的值才能分配内存空间,所以就不能通过。 
int n; 
scanf("%d",&n); 
int a_array[n]; 

//错误二: 
//也是不能编译通过:因为n也是只有在运行的时候才有值 
int n = 10; 
int a_array[n]; 

//正确示范: 
//const修饰int n 之后就能够编译成功,因为const 相当于java中的static ,将n定义在了静态内存中。 
const int n = 10; 
int a_array[n];
//流程控制语句和java是一样的 
for if switch while break contiue

三、错误笔记

1.编译时出错
出现错误:_CRT_SECURE_NO_WARNINGS
警告解决:
右键项目根目录->项目->属性->C/C++ ->预处理器->预处理器定中添加 _CRT_SECURE_NO_WARNINGS关闭这个预定义

四、使用技巧

1.查看内存工具的使用(断点的时候->调试->窗口->内存->)

五、知识要点

1. 为什么定义数组的时候一定要指定数组长度?
C语言中定义数组的时候必须把数组定义在一块连续的内存空间,所以我们在预编译阶段就必须计算出需要 使用的内存的大小,这样才能够在内存中找到一块能够连续的空间存放数组数据,如果需要的内存超过了计算机能够存放的剩余内存就会出现 栈(stack)溢出。

2. 数组的存储限制
数组是存储在stack栈中,stack的大小是有限制的,好像是 1M ,并且我们不需要手动去释放内存,计算机会自动帮我们释放,如果需要定义更大的数组我们就需要动态申请,动态申请的数字存放在堆内存中,并且我们需要手动释放内存。

上一篇 下一篇

猜你喜欢

热点阅读