码迷,mamicode.com
首页 > 编程语言 > 详细

C语言第七天笔记2016年01月21日(周四)P.M

时间:2016-02-25 11:40:24      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

1. 内存分配:

C++里面使用new  delete

注意:

#include <iostream>

#include"stdlib.h"

using namespace std;

int main(int argc, char *argv[]) {

            int* p=new int(5);

//申请了一个数组大小的堆空间,数组中的元素为int类型,元素个数为5。

            int* q=new int[5];

//申请了一个数组大小的堆空间,数组中的元素为int类型,元素个数为5。

            int** elements=new int*[10];

//new 类型(值):申请堆空间的同时将值存入堆空间。

//new 类型[值]:申请数组大小的堆空间,类型为数组堆空间中每个元素的类型。

            for (int i=0;i<5;i++) {

                        scanf("%d",&q[i]);

                        printf("%d\n",q[i]);

            }

            delete p;//释放p所指向的堆空间

            p=NULL;//防止出现野指针

            delete []q;//释放q所指向的数组 堆空间

            q=NULL;//防止出现野指针

            return 0;

}

 

2. const关键字

#include <stdio.h>
 int main(int argc, char *argv[]) {

            const int x=2,y=3;

            int z=3;

           

            const int* pc=&x;//不合法:x=10 *pc=10

            //pc不可以做左值(即:不可以通过指针间接对指针指向的数据进行修改)但是pc本身的值是可变的。

            //int const* pc:值可以变化, 不合法:*pc=10;

            int const* pc1=&y;//const修饰*pc1 *pc1不可以做左值

            pc1=&z;//pc1指向变量z 指向常量的指针<=>常量指针

           

            int* const pc2=&z;//const修饰pc2 pc2不可做左值(即pc2的指向不能变化)

            *pc2=20; //可以  指针不可变但是可间接修改指针所指向的数据。

           

            printf("%d",*pc2);

            return 0;

}

 

字符串替换:

#include <stdio.h>

//形参用const修饰有什么好处:可以防止通过形参修改指向的数据,增强程序的健壮性

void space_to_dash(const char* str)

{

            while (*str) {  // ‘\0‘:字符串的结尾标志

                        if(*str== )

                                    printf("%c",-);

                        else

                                    printf("%c",*str);

                                    str++;

            }

}

int main(int argc, char *argv[]) {

            space_to_dash("Hello world!");

            return 0;

}

3. 引用:取别名

例:int i; int &j=i; 声明一个引用j(即给变量i取了别名为j)

引用必须在声明的同时进行初始化。

好处:可以节省空间

4. 作用域:

文件域、函数域、块域

全局变量:不属于任何函数体的变量

静态全局变量与普通全局变量:两者都在全局、静态数据区 生命周期相同。不同:静态全局变量只能在当前文件中使用,普通的全局变量可以在任意一个文件中通过extern关键字使用。

在不同的的作用域中可以定义同名变量。

系统不会给引用分配空间。

C语言第七天笔记2016年01月21日(周四)P.M

标签:

原文地址:http://www.cnblogs.com/cai1432452416/p/5216243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!