标签:lan sig 应用 信息 修饰符 操作 初始 改变 程序
const int num = 10;
num = 20;
// 报错:Cannot assign to variable ‘num‘ with const-qualified type ‘const int‘,不能为 const 修饰的变量进行赋值
const int nums[5] = {1,2,3,4,5};
nums[0] = 10;
// 报错:Cannot assign to variable ‘nums‘ with const-qualified type ‘const int [5]‘
const int nums[5] = {1,2,3,4,5}; // 完全初始化不能修改
// nums[0] = 10;
const int nums1[5] = {1,2}; // 部分初始化也不能修改
// nums1[3] = 30;
const int nums2[3]; // 未初始化的也不可以
// nums2[0] = 10;
int num = 10;
const int* pnum = # // 无法通过指针去修改指针变量指向的变量的值
*pnum = 100; // 只读变量不可修改
printf("num = %i\n",num);
// 修饰指针: const int * pnum / int const *pnum -->修饰的*pnum
// int num = 10;
// const int* pnum = # // 无法通过指针去修改指针变量指向的变量的值
// *pnum = 100; // 只读变量不可修改
// printf("num = %i\n",num);
// 修饰指针: int * const p1 = # --> 修饰的 p1
int num = 10;
int * const p1 = #
*p1 = 100; // 修改值是可以的
printf("修改值后的 num 值:%i\n",num);
int age = 20;
// p1 = &age; // 此时不能修改p1 的值,也就是只能指向这个地址,不能指向别的地址,还能修改变量的值
//修饰指针:int const * const pnum = # -->修饰的* pnum 和 pnum
int num2 = 30;
int const * const pnum = #
// *pnum = 300; // 不可修改
int num3 = 40;
// pnum = &num3; // 不可修改
void fornum(int arr[],int len);
void conForNum(const int arr[],int len);
int main(){
// const 应用场景
// 我要写一个函数,但是不能修改我数组的值
int arr[] = {1,23,45,6,7,8,9,5,3,234,423,4};
int len = sizeof(arr) / sizeof(arr[0]);
fornum(arr,len); // 哇此时发现被其他函数调用了但是,我的数组值可能被修改了
for (int i = 0 ; i < len; i++) {
printf("main 函数中的 arr 数组的值arr[i] = %i\n:",arr[i]); // 因为传递的指针,所以函数中修改了我这里也修改了,那么怎么能保证我的数据不能被修改,我只给你用但是你不能修改
};
int arr2[] = {1,2,4,5,6,78,9};
int len2 = sizeof(arr2) / sizeof(arr2[0]);
conForNum(arr2, len2);//
return 0;
}
void fornum(int arr[],int len){
for (int i = 0 ; i < len; i++) {
arr[i] = arr[i]+10;
printf("arr[i] = %i\n",arr[i]);
};
}
void conForNum(const int arr[],int len){
for (int i = 0 ; i < len; i++) {
// arr[i] = arr[i]+10; // 报错:只读变量不可赋值
printf("arr[i] = %i\n",arr[i]);
};
}
标签:lan sig 应用 信息 修饰符 操作 初始 改变 程序
原文地址:https://www.cnblogs.com/shanshan-test/p/13096717.html