1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言常量修饰符的作用 C语言杂记(10):关于常量修饰符const

c语言常量修饰符的作用 C语言杂记(10):关于常量修饰符const

时间:2023-12-31 02:19:59

相关推荐

c语言常量修饰符的作用 C语言杂记(10):关于常量修饰符const

情况二:

修饰数组变量,即希望这个数组中的每个变量的值不被修改只能被访问。

const int

a[4]={1,2,3,4};

a[0]=0; //编译报错

情况三:

对形式参量使用const。

首先看例子:

int sum(const int

ar[],int n)

{

int i;

int total=0;

for(i=0;i

total+=ar[i]++;

return total;

}

如果采用int ar[]作为参数的话,在函数中会对其值进行修改,而程序员只希望返回其和而已,不希望修改数组中的值,此时可以使用const 修饰参数,当不小心变量被修改的时候,程序就会报错来提醒程序员,正如以上程序。

情况四:

指向常量的指针亦称常量指针。

常量指针本质是指针,常量修饰它,表示这个指针是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。

而有时我们不希望指针可以随意改变我们变量的值,此时我们就可以使用常量指针,看以下程序:

#include

int

main()

{

int a=100;

const int *p=&a;

a=200;

//*p=200;

加了这句就会报错

printf("%d",a);

return 0;

}

由此我们可以看出,常量指针所指向的并非一定是常量,也可能为变量,但指针把所指向的当作常量,因此不能通过指针来修改该变量的值。但此时仍然可以将p指向其他变量。

通常把指向常量的指针用作函数参量,以表明函数不会用这个指针来修改数据。如:

void show_array(const double *ar,int

n);

情况五:

常量指针与指针常量

常量指针如之前所讲指的是指向常量的指针,指针常量是指指针本身是个常量,不能在指向其他的地址,但却可以改变所指向的变量的值。

常量指针的写法为:

const int * n;

int

const * n;

指针常量写法为:

int *const n;

干脆根据const和*的相对位置来记忆常量指针和指针常量。

情况六:

指向常量的常指针。

其实就是之前两种情况的结合,用两个const来修饰指针,如const double * const

pc=。。。;

这样这个指针既不可以更改所指向的地址,也不可以修改所指向的数据。

附加情况一:

看以下程序:

#include

int main()

{

const int a=100;

int *p=&a;

*p=200;

printf("%d",a);

return 0;

}

运行之后就会发现a的值被改变了。(尤其注意:我从《Primer Plus》这本书上,说这种写法是错误的,书上说只有非常量的地址才可以赋给普通指针,但似乎实际运行的时候只会进行警告提示,不能确定是不是编译器的问题。)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。