Мы можем изменить значение константного целочисленного указателя на b, как мы можем убедиться/ограничить случайную модификацию значения?понимание функции (const int * a) указатель на целочисленную константу
#include <stdio.h>
/**
* Snippet to under working of "pointer to integer(any) constant"
*
* We are able to modify the value of constant integer pointer by b, how
* can we make sure/restrict accidentally modification of the value .
*
*/
void modify_value(const int *m, const int *n) {
//*m = 50; // expected error, assignment of read-only location
*((int*)n) = 100; // value of pointed by pointer gets updated !!
}
int main() {
int a=5,b=10;
printf("a : %d , b : %d \n", a,b);
modify_value(&a,&b);
printf("a : %d , b : %d \n", a,b);
return 0;
}
Не отбрасывайте 'const'? Если вы хотите получить предупреждение об этом, например, в GCC есть «-Wcast-qual». – Ryan
@Ryan, я подумал, как только мы передадим const int *, компилятор не позволит нам изменить указанное значение. Нельзя явно попытаться изменить значение const в производственном коде, интересно, можно ли это полностью предотвратить. – CrazyToExpplore
Я имею в виду, вы можете использовать '-Werror = cast-qual' ...? – Ryan