如何使用指针更改 char 的值?
How can I change the value of a char using a pointer?
所以我对使用指针还很陌生,想知道除了字符串值我还能如何执行以下操作。
int number(int, int *);
int main()
{
int a = 15;
int b =0;
number(a,&b);
fprintf(stdout,"Number b is %d\n",b);
return 0;
}
int number(int a, int *b) {
*b = a;
}
你的意思好像是下面这样
#include <stdio.h>
char * assign( char **s1, char *s2 )
{
return *s1 = s2;
}
int main(void)
{
char *s1 = "Hello World!";
char *s2;
puts( assign( &s2, s1 ) );
return 0;
}
程序输出为
Hello World!
也就是给函数内的指针s2
(类型为char *
)赋值,你需要像在程序中一样通过引用将它传递给函数int
类型的 object。否则该函数将处理其参数的副本并且更改副本不会影响参数。
在 C 中通过引用传递 object 意味着通过指向它的指针间接传递 object。
如果您有存储字符串的字符数组,那么要将字符串复制到字符数组,您可以使用 header <string.h>
.[= 中声明的标准字符串函数 strcpy
17=]
所以我对使用指针还很陌生,想知道除了字符串值我还能如何执行以下操作。
int number(int, int *);
int main()
{
int a = 15;
int b =0;
number(a,&b);
fprintf(stdout,"Number b is %d\n",b);
return 0;
}
int number(int a, int *b) {
*b = a;
}
你的意思好像是下面这样
#include <stdio.h>
char * assign( char **s1, char *s2 )
{
return *s1 = s2;
}
int main(void)
{
char *s1 = "Hello World!";
char *s2;
puts( assign( &s2, s1 ) );
return 0;
}
程序输出为
Hello World!
也就是给函数内的指针s2
(类型为char *
)赋值,你需要像在程序中一样通过引用将它传递给函数int
类型的 object。否则该函数将处理其参数的副本并且更改副本不会影响参数。
在 C 中通过引用传递 object 意味着通过指向它的指针间接传递 object。
如果您有存储字符串的字符数组,那么要将字符串复制到字符数组,您可以使用 header <string.h>
.[= 中声明的标准字符串函数 strcpy
17=]