int *接收const int *在c几几标准可以
时间: 2023-08-28 19:05:44 浏览: 44
在C语言的标准中,可以将一个指向常量的指针赋值给一个指向非常量的指针。这样做是为了保证通过指针不会修改常量的值。下面是一个示例:
```c
const int num = 10;
const int *ptr = # // 指向常量的指针
int *newPtr = (int *)ptr; // 将指向常量的指针赋值给指向非常量的指针
*newPtr = 20; // 修改非常量的值
printf("%d\n", *newPtr); // 输出: 20
```
需要注意的是,虽然在C语言中可以进行这样的操作,但是修改常量的值是非法的行为,应该避免这样做。
相关问题
编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原型为:void fun(const char *str, int* char_N, int* letter_N); C语言
好的,以下是函数的实现:
```c
void fun(const char *str, int* char_N, int* letter_N) {
*char_N = 0;
*letter_N = 0;
while (*str != '\0') {
if ((*str >= 'a' && *str <= 'z') || (*str >= 'A' && *str <= 'Z')) {
(*letter_N)++;
} else if (*str >= '0' && *str <= '9') {
(*char_N)++;
}
str++;
}
}
```
函数接收一个字符串,同时接收两个指针参数 `char_N` 和 `letter_N`,分别用于统计数字字符个数和字母字符个数。在函数内部,我们通过循环遍历字符串中的每个字符,如果该字符为字母,则 `letter_N` 加一;如果该字符为数字,则 `char_N` 加一。最终返回的就是统计结果。
如何使用变量接收const *的参数
可以使用指针来接收 const * 的参数,然后将其赋值给一个变量。例如:
```
void foo(const int *ptr) {
int val = *ptr;
// ...
}
```
在这个函数中,参数 `ptr` 是一个 const int * 类型的指针,它指向一个 const int 类型的值。我们可以使用解引用操作符 * 来获取该值,并将其赋值给一个 int 类型的变量 val。这样我们就可以在函数中使用 val 这个变量来进行操作,而不用担心会修改到原始的 const int 值。