在c中打印char指针值
print char pointer value in c
-: 正在尝试学习 c 中的指针 :-
我无法打印字符指针处的值,程序的其余部分工作正常。
它只是打印一个空白 space,但没有得到任何错误。
#include<stdio.h>
void main() {
int num, *num_ptr;
char ch, *ch_ptr;
printf("Enter a number and a single character : ");
scanf("%d%c",&num,&ch);
num_ptr = #
ch_ptr = &ch;
//printf("\ncontent at num_ptr = %p \n",num_ptr);
//printf("content at ch_ptr = %p\n",ch_ptr);
//printf("value of the content at num_ptr = %d\n",*num_ptr);
/* error part */
printf("value of the content at ch_ptr = %c\n",*ch_ptr);
/* error part */
//printf("\n");
//printf("num_ptr + 2 = %p\n",num_ptr+2);
//printf("ch_ptr + 2 = %p\n",ch_ptr+2);
//printf("\n");
//printf("num_ptr + 1 = %p\n",++num_ptr);
//printf("num_ptr - 1 = %p\n",--num_ptr);
//printf("ch_ptr + 1 = %p\n",++ch_ptr);
//printf("ch_ptr - 1 = %p\n",--ch_ptr);
//printf("\n");
//printf("num_ptr + 5 = %p\n",num_ptr+5);
//printf("ch_ptr - 5 = %p\n\n",--ch_ptr-5);
}
你输入的是21 t
,也就是说scanf
会把21读成num
,而in-between白space会读成ch
,这是您在 scanf
的第一个参数中指定的内容。您可以用空格 space 分隔格式说明符,即 %d %c
,或者输入不带白色 space 的输入,因此 21t
.
-: 正在尝试学习 c 中的指针 :-
我无法打印字符指针处的值,程序的其余部分工作正常。 它只是打印一个空白 space,但没有得到任何错误。
#include<stdio.h>
void main() {
int num, *num_ptr;
char ch, *ch_ptr;
printf("Enter a number and a single character : ");
scanf("%d%c",&num,&ch);
num_ptr = #
ch_ptr = &ch;
//printf("\ncontent at num_ptr = %p \n",num_ptr);
//printf("content at ch_ptr = %p\n",ch_ptr);
//printf("value of the content at num_ptr = %d\n",*num_ptr);
/* error part */
printf("value of the content at ch_ptr = %c\n",*ch_ptr);
/* error part */
//printf("\n");
//printf("num_ptr + 2 = %p\n",num_ptr+2);
//printf("ch_ptr + 2 = %p\n",ch_ptr+2);
//printf("\n");
//printf("num_ptr + 1 = %p\n",++num_ptr);
//printf("num_ptr - 1 = %p\n",--num_ptr);
//printf("ch_ptr + 1 = %p\n",++ch_ptr);
//printf("ch_ptr - 1 = %p\n",--ch_ptr);
//printf("\n");
//printf("num_ptr + 5 = %p\n",num_ptr+5);
//printf("ch_ptr - 5 = %p\n\n",--ch_ptr-5);
}
你输入的是21 t
,也就是说scanf
会把21读成num
,而in-between白space会读成ch
,这是您在 scanf
的第一个参数中指定的内容。您可以用空格 space 分隔格式说明符,即 %d %c
,或者输入不带白色 space 的输入,因此 21t
.