2013-7-15学习一些修饰词的比较

简介: 蛇形数组: //蛇形函数问题 #include #include void main() {    int i = 0,n,k = 1;    printf("请输入N:");    scanf("%d",&...
蛇形数组:

//蛇形函数问题

#include<stdio.h>

#include<string.h>

void main()

{

   int i = 0,n,k = 1;

   printf("请输入N:");

   scanf("%d",&n);  //

   int j = n-1,s[100][100];

   memset(s,0,sizeof(s));  //内存初始化

   

   while(k<=n*n)

   {

       while(i<=n-1&&s[i][j]==0&&k<=n*n) {s[i++][j] = k++;}

       i--;//不然的话上面一行i++之后越过边界了

       j--;//不然会覆盖边角的那个数

       while(j>=0&&s[i][j]==0&&k<=n*n)  {s[i][j--] = k++;}

       j++;

       i--;

       while(i>=0&&s[i][j]==0&&k<=n*n)  {s[i--][j] = k++;}

       i++;

       j++;

       while(j<=n-1&&s[i][j]==0&&k<=n*n)  {s[i][j++] = k++;}

       i++;

       j--;

   }

   

   //打印输出

   for(int x = 0;x<n;x++)

   {

       for(int y = 0;y<n;y++)

       {

           if(s[x][y]<10)

               printf("%d  ",s[x][y]);

           else

               printf("%d ",s[x][y]);

       }

       printf("\n");

   }

}

结果:

2013年07月15日 - 蓬莱仙羽 - IT达人的博客



const和define的区别:
define不需要指名类型,const只读不能修改。const 要做类型判断

const char *p;

char const *p; 

p指向可以改,*p不可改

char * const p="abc";   *p可以改,但这儿不可改,是在静态区,初始化必须指向,不然会报错

char const * const p="abc"  ; p不可改,*p也不可改

const数据开辟在静态区,在编译的时候就开辟空间了

引用:int &a=5;  是错误的  就类似: int *p=&5;  错误


别名是唯一的,一旦起了别名就不可以更改

引用和指针的区别:

1.从内存上来讲  系统为指针分寸内存空间,而引用与绑定的对象共享内存空间,系统不为引用变量分配内容空间。

2指针初始化以后可以改变指向的对象,而引用定义的时候必须要初始化,且初始化以后不允许再重新绑定对象。

3.所以引用访问对象是直接访问。指针访问对象是间接访问。

4。如果pa是指针,那么*pa就是引用了。

但是两者在作为形参的时候非常相似,区别是指针拷贝副本,引用不拷贝。程序如下:

#include<stdio.h>

void pt(int * pta,int * ptb)

{

int *ptc;

ptc=pta;pta=ptb;ptb=ptc;

}

void ref(int &ra,int &rb)

{

int rc;

rc=ra;ra=rb;rb=rc;

}

void main()

{

int a=3;int b=4;

int *pa=&a;int *pb=&b;

pt(pa,pb);

printf("zhizhen: a=%d,b=%d\n",a,b);

ref(a,b);

printf("yinyong: a=%d,b=%d\n",a,b);

}

const和static区别

const int i=10; //i不可以更改

static int a=10;//可以更改 只初始化一次

如果把const放在变量类型名前,说明这个变量的值是保持不变的,该变量必须在定义时初始化,初始化后对它进行的任何赋值都是非法的。

将static用于一个全局变量,是说明该全局变量只对定义在同一个文件中的函数可见。即使在另一个文件中使用了extern,另一个文件中的函数也不能访问这个全局变量。

static的第二个含义是用于一个函数前,说明该函数只能在同一个文件中调用。

第三个含义是static用于函数的局部变量。它表明该变量的值不会因为函数终止而消失,它会被保存下来。再次调用该函数时,这个保存下来的值会用来初始化该变量。

第四个含义就是用于类的成员变量。它表明对类的所有对象,这个数据成员都只有一个实例。这个实例被所有对象共有。static的成员变量可以是private、public、protected的。定义和访问的语法也和其他数据成员一样。


定义类不占存储空间,只是定义了类型。
相关文章
|
4月前
|
Java
封装、继承、多态的联合使用实现不同等级学生分数信息的统计
这篇文章通过Java代码示例演示了封装、继承和多态的概念,并用它们来实现不同等级学生分数信息的统计。
封装、继承、多态的联合使用实现不同等级学生分数信息的统计
|
6月前
|
开发框架 .NET 编译器
程序与技术分享:C#基础知识梳理系列三:C#类成员:常量、字段、属性
程序与技术分享:C#基础知识梳理系列三:C#类成员:常量、字段、属性
37 2
|
设计模式 Java
1.1什么是Java内部类:概念与分类
1.1什么是Java内部类:概念与分类
98 0
|
自然语言处理 JavaScript Shell
什么,你告诉我?作用域也分种类?
什么,你告诉我?作用域也分种类?
105 0
什么,你告诉我?作用域也分种类?
|
人工智能 Go API
高阶与分类变量实例 | 学习笔记
快速学习高阶与分类变量实例
高阶与分类变量实例 | 学习笔记
|
存储 BI C++
C++实验三:类的多态性的实现——工资报表
某公司的员工有经理Manager、技术人员Technicist和营销人员SalsePerson,他们的薪金计算方法如下: 经理按月计酬,方法是:基本工资+奖金;技术人员按月计酬,方法是:基本工资;营销人员按月计酬,方法是:基本工资+销售利润*5%。其中基本工资为8000元再加上工龄工资。工龄工资就是雇员在该公司工作的工龄每增加一年,月工资就增加200元。 每类人员都有职工编号、姓名、性别、入职时间、职位、基本工资等数据;各类人员使用统一接口get_pay()计算各类人员的月薪,重载<<运算符实现
229 0
C++实验三:类的多态性的实现——工资报表
基于显式评分
基于显式评分
109 0
|
C++
C++第13周项目2 - 多重继承教师类和干部类
课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8953304 【项目2】分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)
1604 0
|
Java 数据库 数据安全/隐私保护
规则之间-方法覆写限制 | 带你学《Java面向对象编程》之四十
本节向读者介绍了覆写方法过程中的一些限制,并拓宽读者对访问权限控制符的认识,帮助读者进行有效的方法覆写。